這篇內容,將會講解什麼是變數,以及與變數相關的知識。有了這些概念,各位會更容易理解,要如何設計程式碼。
本篇教學所使用的系統是Windows 10,如果有按鍵相關的說明,會用Windows的系統來解釋。如果你用的是Mac系統,再麻煩自行換成相對應的按鍵。
在學習本篇內容之前,最好具備以下的前置知識,以免看不懂這篇教學的內容。
在幼幼班的內容中,我有提到「自訂參數」的概念,如果把這個概念,換成程式語言中,比較通用的詞語,那就叫做「變數(Variable)」。
簡單來說,變數的功能,就是能讓我們存放一個「數值」,這個數值能有很多的「資料型態」,例如:實數(100、-50、3.14)、整數(100、50)、字串("你好!")。
然後我們就可以透過這些變數,來進行「邏輯判斷」,例如:當HP(變數)小於零的時候,角色死亡,遊戲結束。
在變數的說明中,我們知道變數可以存放,多種不同的資料型態。
換句話說,只要了解有哪些資料型態,我們就能知道,有哪些種類的「數值」,是能存到變數裡面的。
由於資料型態的篇幅較大,這裡不會詳細的介紹他們,而是會用另一篇教學來講解:
講人話的意思就是,將某個變數,設定成某個數值,讓人看不懂的專業術語,就是「變數賦值(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 ;
就跟我們在幼幼班裡,所提到的資產命名一樣,變數也有自己的命名限制,不是所有字元都能用在變數的命名上面。
以下是變數的命名限制:
與資產命名最大的不同地方,在於變數的命名是可以「重複」的,但這個重複是有條件的,他們必須在不同的「作用區域」。
在中文圈裡,比較傳統的翻譯是「變數範圍」,但我覺得翻譯成「作用區域」,會比較容易理解。
在幼幼班的內容中有提到,我們能在物件(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的變數,但他們是相互獨立的,而且也各自擁有自己的數值,並不會相互的影響。
簡單來說,就是GameMaker設計好的變數,通常我們只要改變他們,就能直接影響遊戲中的畫面,例如:XY座標、寬高數值。
在大多數的遊戲中,我們都是先設計「自訂變數」,接著再設計一連串的「偵測邏輯」。
當自訂變數,達成某個數值(或條件)的時候,再去改變「內建變數」,藉此來完成遊戲畫面的刷新和互動。
🔔如果內容對你有幫助,可以按個喜歡,這樣就能讓更多人,接觸到這些棒棒的內容🔔
✨祝各位也能開心的做出好遊戲✨