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

GameMaker|Variable 變數|程式基礎

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

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


前置知識


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


Variable 變數


在幼幼班的內容中,我有提到「自訂參數」的概念,如果把這個概念,換成程式語言中,比較通用的詞語,那就叫做「變數(Variable)」。

簡單來說,變數的功能,就是能讓我們存放一個「數值」,這個數值能有很多的「資料型態」,例如:實數(100、-50、3.14)、整數(100、50)、字串("你好!")。

然後我們就可以透過這些變數,來進行「邏輯判斷」,例如:當HP(變數)小於零的時候,角色死亡,遊戲結束。


Data Type 資料型態


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

換句話說,只要了解有哪些資料型態,我們就能知道,有哪些種類的「數值」,是能存到變數裡面的。

由於資料型態的篇幅較大,這裡不會詳細的介紹他們,而是會用另一篇教學來講解:

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


Variable Assignment 變數賦值


講人話的意思就是,將某個變數,設定成某個數值,讓人看不懂的專業術語,就是「變數賦值(Variable Assignment)」。

以下是在GameMaker中,常見的賦值方法:

a = 100 ;   //將a的數值,設定成100
​b = 200 ; //將b的數值,設定成200
c = a + b ; //將c的數值,設定成300,因為a+b=300,再把300丟進c變數裡
a = a + c ; //將a的數值,設定成400,因為a+c=400,再把400丟進a變數裡

另外,如果我們要將多個變數,設定成相同的數值,只能一個一個設定,「不能」使用「連續等號」的方式來設定:

a = b = c = 100 ; //任何變數都不能這樣進行設定

//正確的設定方法
a = 100 ;
b = 100 ;
c = 100 ;


變數的命名規則


就跟我們在幼幼班裡,所提到的資產命名一樣,變數也有自己的命名限制,不是所有字元都能用在變數的命名上面。

以下是變數的命名限制:

  1. 只能使用0~9、A~Z、a~z,以及底線符號( _ )
  2. 不能使用0~9作為開頭
  3. 最大長度為64個字元
  4. 不能使用「已經定義過」的詞彙,來當作變數名稱,例如:speed

與資產命名最大的不同地方,在於變數的命名是可以「重複」的,但這個重複是有條件的,他們必須在不同的「作用區域」。


Variable Scope 變數的作用區域


在中文圈裡,比較傳統的翻譯是「變數範圍」,但我覺得翻譯成「作用區域」,會比較容易理解。

在幼幼班的內容中有提到,我們能在物件(Object)中,設定程式碼。因此我們也能在物件中,來設定我們所需要的變數。

而在這個物件中所設定的變數,他的作用區域(能夠使用他的地方),就只能限制在這個物件當中,我們沒辦法把這個變數,用在「不同」的物件上面。


像這種,只能作用在某個物件區域的變數,在GameMaker當中,稱之為「Instance Variable(實體變數)」。

除了Instance Variable之外,還有Local Variable、Global Variable等等,不同的作用域變數。常用的作用域類型,會在其他的教學中講解:

GameMaker|Variable Scope 變數範圍|程式基礎


變數的可重複性


如果,我們在兩個不同的物件中,各自命名了一個,相同名稱的變數,那這兩個變數,會是不一樣的,裡面的數值當然也不會相等。

上面這串話很難懂對吧,沒關係,我舉個簡單的例子,各位應該就能理解了。


假設,我們需要兩種不同的敵人,因此我們建立了兩個物件,分別是「敵人A」和「敵人B」(下方會簡稱為A和B)。

當敵人的HP(生命值)歸零時,敵人就會消失。因此,我們在A和B當中,都加入了HP的變數,並將他們都設置成100。

此時,如果A受到傷害,那A的HP就會減少,但B的HP,依然會維持在100,不會受到影響。

從上面的例子中,我們就可以知道,雖然兩個物件中,都有HP的變數,但他們是相互獨立的,而且也各自擁有自己的數值,並不會相互的影響。


Built-in Variable 內建變數


簡單來說,就是GameMaker設計好的變數,通常我們只要改變他們,就能直接影響遊戲中的畫面,例如:XY座標、寬高數值。

在大多數的遊戲中,我們都是先設計「自訂變數」,接著再設計一連串的「偵測邏輯」。

當自訂變數,達成某個數值(或條件)的時候,再去改變「內建變數」,藉此來完成遊戲畫面的刷新和互動。




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


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

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