GameMaker|Variable 變數|程式基礎

更新於 2024/08/11閱讀時間約 4 分鐘

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

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

raw-image


前置知識


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


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座標、寬高數值。

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

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




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


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

免費、開心、簡單,這是我做教學的理念,我希望透過我的行動,讓人們找回自我學習的快樂,讓那些資源稀少的自學者們,也能朝著自己的夢想來前進。讓我們一起開心的做出遊戲吧!
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
這篇內容,將透過實戰教學,來講解「滑鼠點方塊」的程式碼。包括如何測試遊戲、座標系統、自訂參數和內建參數、if else、and、遊戲的邏輯設計、程式碼解析。
這篇內容,將透過實戰教學,介紹GameMaker中的Event。包括Event的簡介、Create的講解、Step的講解、Events的基本操作。
這篇內容,將透過實戰教學,介紹GameMaker中的Camera。包括Camera的簡介、設定Camera的方法、Viewport的介紹。
這篇內容,將透過實戰教學,介紹GameMaker中的Room。包括Room的簡介、調整寬高、圖層功能的概述、用Object來建立實體。
這篇內容,將透過實戰教學,介紹GameMaker中的Object。包括如何建立新的Object、Object和Sprite的關係、設定Sprite參數。
這篇內容,將透過實戰教學,介紹GameMaker中的Sprite。包括建立新的Sprite、重新命名及刪除、建議的命名方式、編輯圖像、調整圖像大小、動畫的概述、原點設置、碰撞遮罩的概述。
這篇內容,將透過實戰教學,來講解「滑鼠點方塊」的程式碼。包括如何測試遊戲、座標系統、自訂參數和內建參數、if else、and、遊戲的邏輯設計、程式碼解析。
這篇內容,將透過實戰教學,介紹GameMaker中的Event。包括Event的簡介、Create的講解、Step的講解、Events的基本操作。
這篇內容,將透過實戰教學,介紹GameMaker中的Camera。包括Camera的簡介、設定Camera的方法、Viewport的介紹。
這篇內容,將透過實戰教學,介紹GameMaker中的Room。包括Room的簡介、調整寬高、圖層功能的概述、用Object來建立實體。
這篇內容,將透過實戰教學,介紹GameMaker中的Object。包括如何建立新的Object、Object和Sprite的關係、設定Sprite參數。
這篇內容,將透過實戰教學,介紹GameMaker中的Sprite。包括建立新的Sprite、重新命名及刪除、建議的命名方式、編輯圖像、調整圖像大小、動畫的概述、原點設置、碰撞遮罩的概述。
你可能也想看
Google News 追蹤
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
在 Solidity 中,constant 變量用於定義不可變的常數值。這些常數在合約的生命週期內不會改變,並且它們的值必須在宣告時設定。使用 constant 關鍵字可以節省 gas,因為它們在編譯時就已經被嵌入到字節碼中,不需要在運行時讀取存儲。 用法 定義常數: 常數變量必須在宣告時初始
Thumbnail
JavaScript30 傳送門:https://javascript30.com/ 透過 JS 控制 CSS 變數 今天的挑戰是要能透過滑動圖片上面的 <input type="range"> 來改變圖片的三個屬性。 以前在 CSS 裡面看到 var(--xxxx) 這種東西都很
前言: 雖然前面有些定義還沒有完整的解釋,但還是後面再說吧, 誰想一直看理論啊(摔本子)
Thumbnail
在 CSS 的開發過程中,重複使用如顏色、字體大小等值是常見的需求。為了提高程式碼維護性和靈活性,就需要用到 CSS 變量了,CSS 變量可以讓你在樣式表中儲存可重用的值。本文將介紹 CSS 變量的概念、使用方法,以及它對撰寫 CSS 的影響。
Thumbnail
上次我們教完了 Gitlab CI/CD 公用變數與區域變數還可以隱藏變數,今天我們來講 CI/CD 中,還有一個是由 Gitlab 提供的環境變數,我們也可以利用這些變數,操作我們講做的事情。 GitLab CI 變數 打開 Gitlab 官方 說明文件 ,是裡是 Gitlab 提供的環境變數
Thumbnail
上次教到 variables 如何使用公用變數與區域變數,今天來教如何將變數隱藏到別的地方,為什麼叫隱藏到別的地方? 那是因為我們有時候有些變數值不想直接寫在 .gitlab-ci.yml 檔裡面,又或者有太敏感資訊,我們想藏在 GitLab 專案設定變數裡面。 設定 GitLab 專案變數 我
Thumbnail
上次我們教到 needs 可以來指定哪個工作完成時,才會指向下一個工作,今天我們來教 CI/CD 之 variables 變數,在 Gitlab CI/CD 中也提供環境變數、區域變數 和 公用變數讓我們操作,我們會再這裡分成三期教各位。 variables 定義規則 CI/CD 變數命名先寫一
Thumbnail
本次的挑戰是「CSS Variables」,需要達成的目標是:「使用者操作拉桿或是選色器時,底下圖片的樣式會有對應的變化。」
Thumbnail
說明 重點 △定義變數 △文字的定義 △文字與數字的差別 △整數與浮點數 △signed(有號)與unsigned(無號)的區別 △e是什麼符號? 分類 △字元 △字串 △短整數 △整數 △長整數 △超長整數 △單精度浮點數 △雙精度浮點數 △長雙精度浮點數 應用 宣告與輸出 運算符 結論
Thumbnail
撰寫程式時,有沒有想過宣告的這些變數是怎麼運作的呢? 本文介紹了Value Type跟Reference Type,以及Variable的基本命名方式。
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
在 Solidity 中,constant 變量用於定義不可變的常數值。這些常數在合約的生命週期內不會改變,並且它們的值必須在宣告時設定。使用 constant 關鍵字可以節省 gas,因為它們在編譯時就已經被嵌入到字節碼中,不需要在運行時讀取存儲。 用法 定義常數: 常數變量必須在宣告時初始
Thumbnail
JavaScript30 傳送門:https://javascript30.com/ 透過 JS 控制 CSS 變數 今天的挑戰是要能透過滑動圖片上面的 <input type="range"> 來改變圖片的三個屬性。 以前在 CSS 裡面看到 var(--xxxx) 這種東西都很
前言: 雖然前面有些定義還沒有完整的解釋,但還是後面再說吧, 誰想一直看理論啊(摔本子)
Thumbnail
在 CSS 的開發過程中,重複使用如顏色、字體大小等值是常見的需求。為了提高程式碼維護性和靈活性,就需要用到 CSS 變量了,CSS 變量可以讓你在樣式表中儲存可重用的值。本文將介紹 CSS 變量的概念、使用方法,以及它對撰寫 CSS 的影響。
Thumbnail
上次我們教完了 Gitlab CI/CD 公用變數與區域變數還可以隱藏變數,今天我們來講 CI/CD 中,還有一個是由 Gitlab 提供的環境變數,我們也可以利用這些變數,操作我們講做的事情。 GitLab CI 變數 打開 Gitlab 官方 說明文件 ,是裡是 Gitlab 提供的環境變數
Thumbnail
上次教到 variables 如何使用公用變數與區域變數,今天來教如何將變數隱藏到別的地方,為什麼叫隱藏到別的地方? 那是因為我們有時候有些變數值不想直接寫在 .gitlab-ci.yml 檔裡面,又或者有太敏感資訊,我們想藏在 GitLab 專案設定變數裡面。 設定 GitLab 專案變數 我
Thumbnail
上次我們教到 needs 可以來指定哪個工作完成時,才會指向下一個工作,今天我們來教 CI/CD 之 variables 變數,在 Gitlab CI/CD 中也提供環境變數、區域變數 和 公用變數讓我們操作,我們會再這裡分成三期教各位。 variables 定義規則 CI/CD 變數命名先寫一
Thumbnail
本次的挑戰是「CSS Variables」,需要達成的目標是:「使用者操作拉桿或是選色器時,底下圖片的樣式會有對應的變化。」
Thumbnail
說明 重點 △定義變數 △文字的定義 △文字與數字的差別 △整數與浮點數 △signed(有號)與unsigned(無號)的區別 △e是什麼符號? 分類 △字元 △字串 △短整數 △整數 △長整數 △超長整數 △單精度浮點數 △雙精度浮點數 △長雙精度浮點數 應用 宣告與輸出 運算符 結論
Thumbnail
撰寫程式時,有沒有想過宣告的這些變數是怎麼運作的呢? 本文介紹了Value Type跟Reference Type,以及Variable的基本命名方式。