2024-07-29|閱讀時間 ‧ 約 6 分鐘

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

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

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


前置知識


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


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的資料型態




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


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

分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.