GameMaker|Variable 變數|程式基礎

閱讀時間約 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
查看全部
發表第一個留言支持創作者!
這篇內容,將透過實戰教學,來講解「滑鼠點方塊」的程式碼。包括如何測試遊戲、座標系統、自訂參數和內建參數、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
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
在 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
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
在 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的基本命名方式。