GameMaker|Data Type 資料型態|程式基礎

閱讀時間約 4 分鐘

這篇內容,將會講解什麼是資料型態,以及與資料型態相關的知識。有了這些概念,各位會更容易理解,要如何設計程式碼。

本篇教學所使用的系統是Windows 10,如果有按鍵相關的說明,會用Windows的系統來解釋。如果你用的是Mac系統,再麻煩自行換成相對應的按鍵。

raw-image


前置知識


在學習本篇內容之前,最好具備以下的前置知識,以免看不懂這篇教學的內容。


Data Type的簡介


在變數的說明中,我們知道變數可以存放,多種不同的資料型態。

那麼,在了解資料型態之後,又有什麼用處呢?答案如下:

  • 當我們在設定參數,或在使用函數(Function)時,就不會把數值,放在不正確的地方,例如:把字串類型的數值,設定到XY座標(實數類型)裡面。
  • 當我們在進行邏輯比較時(大於、小於之類的),就不會把不相干的數值,拿來進行比較,例如:比較某個字串和某個數字,哪一個比較大。


下方我會說明,初學者應該要了解的資料型態。這些資料型態,除了在GameMaker中會用到之外,其他的程式語言,也幾乎有相同的東西(可能名字不同而已)。

不過,我並不會說明,所有的資料類型。老實說,有些資料類型,我也還沒看懂,他們的應用場景在哪裡。

如果之後我有使用到,也覺得他們很有用,那麼,我會再找個時間,補上這些資料型態的相關說明。

最後,我也會附上官方的說明書連結,如果遇到沒看過的資料型態,可以從這邊尋找關鍵字,接著再用google去尋找答案。


Real Number 實數


這裡的實數,與數學裡的實數是一樣的,包含了正數、負數、整數、小數,例如:100、-50、3.14、-6.66。

在官方的說明裡,並沒有詳細講到,實數的範圍有多大(最小值到最大值),但有提到是用64位元雙精度浮點數(64-bit double-precision floating point)來存放的。

如果0的數值,是放在雙精度浮點數的中間,那麼能使用的數字範圍就是2-1024到21024之間。

以下是變數賦值的範例:

a = 10 ;
b = -50 ;
c = 3.14 ;
d = -6.66 ;


Boolean 布林值


布林值只有兩種數值,分別是true和false,這種資料型態,通常會用在邏輯判斷上面。

例如以下的程式碼:

//如果滑鼠的左鍵點下
if mouse_check_button_pressed(mb_left)
{
//執行某些程式碼
}


當滑鼠左鍵點下時,第二行裡面的mouse_check_button_pressed(mb_left),就會回傳true,相反的話,就會傳遞false。

當if收到true的指令,那就表示左鍵有按下,那就會執行if裡面的程式碼。


String 字串


所謂的字串,指的就是文字資料,不管是abcd、中文字、數字、符號,都能用字串的方式,存放在變數當中。

在使用字串時,需要用兩個雙引號來包覆,才能表示雙引號中的內容,是字串資料,例如以下的程式碼:

a = "你好";
b = "Hi!";


這邊講一個初學者常犯的錯誤,那就是「把實數資料當成字串使用」。各位可以看看以下的程式碼:

//這是錯誤的程式碼​
a = 0 ;
show_message(a) ;


第三行的show_message(),是用來顯示文字的程式碼,括弧裡面的參數,需要放置「字串」類型的數值。

在上面的程式碼中,我們希望顯示,變數當中的數字,也就是0。但用這種方式會發生程式錯誤,理由是:變數的資料類型是「實數」,而不是「字串」。

那正確的寫法呢?答案是把0,改成"0",這樣才表示,變數存放了「文字0」的字串。

a = "0" ;
show_message(a) ;

備註:另一種方法,是把實數資料,轉換成字串資料,未來如果有用到,會再詳細說明。


Array 陣列


所謂的陣列,是一種「特殊的變數」。一般的變數,一次只能存放一個數值,而陣列卻可以存放多個數值,並透過索引(index)的方式,來尋找我們所存放的數值。

如果用比較簡單的譬喻,那可以把變數想像成是單人房,而陣列就是旅館或公寓。


由於陣列是程式設計中,非常重要的組成,我們會用單獨的教學來講解:

GameMaker|Array 陣列|程式基礎


官方的說明書


在不同的程式語言當中,會有不同的資料類型設定,像是GameMaker的數字類型,就只有實數資料一種,有些語言還有分整數、短整數、長整數、浮點數……等等。

因此,在學習新的程式語言時,最好還是看一下他們的資料類型,而不是用原本的概念,來撰寫他們的程式碼。


以下是官方的說明書,如果遇到不懂的資料類型,可以試著從這裡尋找答案:

GameMaker的資料型態




🔔如果內容對你有幫助,可以按個喜歡,這樣就能讓更多人,接觸到這些棒棒的內容🔔


✨祝各位也能開心的做出好遊戲✨

免費、開心、簡單,這是我做教學的理念,我希望透過我的行動,讓人們找回自我學習的快樂,讓那些資源稀少的自學者們,也能朝著自己的夢想來前進。讓我們一起開心的做出遊戲吧!
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
這篇內容,將會用一個簡單的範例,來解釋物件(Object)和實體(Instance)的差別。包括Instance的簡介、ID、物件改變會影響實體。
這篇內容,將會講解什麼是變數,以及與變數相關的知識。包括變數、資料型態、變數賦值、變數的命名規則、變數的作用區域、變數的可重複性、內建變數。
這篇內容,將透過實戰教學,來講解「滑鼠點方塊」的程式碼。包括如何測試遊戲、座標系統、自訂參數和內建參數、if else、and、遊戲的邏輯設計、程式碼解析。
這篇內容,將透過實戰教學,介紹GameMaker中的Event。包括Event的簡介、Create的講解、Step的講解、Events的基本操作。
這篇內容,將透過實戰教學,介紹GameMaker中的Camera。包括Camera的簡介、設定Camera的方法、Viewport的介紹。
這篇內容,將透過實戰教學,介紹GameMaker中的Room。包括Room的簡介、調整寬高、圖層功能的概述、用Object來建立實體。
這篇內容,將會用一個簡單的範例,來解釋物件(Object)和實體(Instance)的差別。包括Instance的簡介、ID、物件改變會影響實體。
這篇內容,將會講解什麼是變數,以及與變數相關的知識。包括變數、資料型態、變數賦值、變數的命名規則、變數的作用區域、變數的可重複性、內建變數。
這篇內容,將透過實戰教學,來講解「滑鼠點方塊」的程式碼。包括如何測試遊戲、座標系統、自訂參數和內建參數、if else、and、遊戲的邏輯設計、程式碼解析。
這篇內容,將透過實戰教學,介紹GameMaker中的Event。包括Event的簡介、Create的講解、Step的講解、Events的基本操作。
這篇內容,將透過實戰教學,介紹GameMaker中的Camera。包括Camera的簡介、設定Camera的方法、Viewport的介紹。
這篇內容,將透過實戰教學,介紹GameMaker中的Room。包括Room的簡介、調整寬高、圖層功能的概述、用Object來建立實體。
你可能也想看
Google News 追蹤
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
此章節旨在介紹Java程式語言中的各種資料型別,包括基本型別、引用型別、集合型別、陣列型別、字典型別等。它還講解了如何在Java中進行型別轉換和自定義型別,並提供了相關的程式碼示例。
Thumbnail
此章節旨在介紹Swift程式語言中的基本資料型別,包括整數、浮點數、布林型別、字串、字符、選擇型、型別轉換、自訂型別(包括類、結構和枚舉)、元組型別、集合型別、陣列型別和字典型別。每種型別的說明都包含了程式碼範例,以便讀者更好地理解其應用和使用方式。
Thumbnail
本章節旨在介紹 TypeScript 的基本資料型別,包括內建型別、型別轉換、自訂型別、元組、集合、陣列、和字典型別。透過理解和使用這些型別,可以提高代碼的可讀性和可維護性。
Thumbnail
Anytype主要分為四區塊:目錄欄(Widget組成)、主編輯畫面、導航選單、設定區。
Thumbnail
這些章節的目的是為了介紹JavaScript中的各種數據類型,包括基礎類型和物件類型,以及如何將數據從一種類型轉換為另一種類型。此外,還介紹了如何創建自定義類型,以及如何使用JavaScript中的陣列、集合和字典。
Thumbnail
內容涵蓋資料型別、型別轉換、自訂型別、元組型別、集合型別和字典型別等主題。文章首先詳述內建型別如bool、byte、char等的定義和使用,接著討論型別轉換,包括隱含轉換和明確轉換。之後文章介紹自訂型別的建立,以及元組、集合、陣列和字典型別的操作與例子。
Thumbnail
完成了Debug.log()的測試,接著還是要跟各位簡單講一下C#的一些規則,之後看程式會(比較)看得懂。 又講到變數? 在Unity中,變數是重要的工具,用來儲存和管理資料。讓開發者能夠靈活調整遊戲的行為和性能,減少代碼的重複性,使得遊戲開發更加高效和簡潔。透過使用變數,開發者可以輕鬆修改資料
Thumbnail
題目敘述 題目會給我們一組定義好的界面和需求,要求我們設計一個資料結構,可以滿足平均O(1)的插入元素、刪除元素、隨機取得元素的操作。 RandomizedSet() 類別建構子 bool insert(int val) 插入元素的function界面 bool remove(int val
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
此章節旨在介紹Java程式語言中的各種資料型別,包括基本型別、引用型別、集合型別、陣列型別、字典型別等。它還講解了如何在Java中進行型別轉換和自定義型別,並提供了相關的程式碼示例。
Thumbnail
此章節旨在介紹Swift程式語言中的基本資料型別,包括整數、浮點數、布林型別、字串、字符、選擇型、型別轉換、自訂型別(包括類、結構和枚舉)、元組型別、集合型別、陣列型別和字典型別。每種型別的說明都包含了程式碼範例,以便讀者更好地理解其應用和使用方式。
Thumbnail
本章節旨在介紹 TypeScript 的基本資料型別,包括內建型別、型別轉換、自訂型別、元組、集合、陣列、和字典型別。透過理解和使用這些型別,可以提高代碼的可讀性和可維護性。
Thumbnail
Anytype主要分為四區塊:目錄欄(Widget組成)、主編輯畫面、導航選單、設定區。
Thumbnail
這些章節的目的是為了介紹JavaScript中的各種數據類型,包括基礎類型和物件類型,以及如何將數據從一種類型轉換為另一種類型。此外,還介紹了如何創建自定義類型,以及如何使用JavaScript中的陣列、集合和字典。
Thumbnail
內容涵蓋資料型別、型別轉換、自訂型別、元組型別、集合型別和字典型別等主題。文章首先詳述內建型別如bool、byte、char等的定義和使用,接著討論型別轉換,包括隱含轉換和明確轉換。之後文章介紹自訂型別的建立,以及元組、集合、陣列和字典型別的操作與例子。
Thumbnail
完成了Debug.log()的測試,接著還是要跟各位簡單講一下C#的一些規則,之後看程式會(比較)看得懂。 又講到變數? 在Unity中,變數是重要的工具,用來儲存和管理資料。讓開發者能夠靈活調整遊戲的行為和性能,減少代碼的重複性,使得遊戲開發更加高效和簡潔。透過使用變數,開發者可以輕鬆修改資料
Thumbnail
題目敘述 題目會給我們一組定義好的界面和需求,要求我們設計一個資料結構,可以滿足平均O(1)的插入元素、刪除元素、隨機取得元素的操作。 RandomizedSet() 類別建構子 bool insert(int val) 插入元素的function界面 bool remove(int val