GameMaker|switch|程式基礎

更新於 2024/08/14閱讀時間約 6 分鐘

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

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

raw-image


前置知識


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


switch的簡介


如果我們希望,透過某個變數(Variable)的「數值狀態」,來決定運行的程式碼,那就可以考慮使用「switch」。

由於switch和if else,在某些狀況下,是可以進行轉換的。因此這邊我們放兩段,功能一樣的程式碼,來讓各位裡解,switch的使用原理。

//這是if else的程式碼
if (a == 1) {
b = a + 1 ;
} else if (a == 2) {
b = a + 2 ;
} else {
b = a ;
}

//這是​switch的程式碼,功能跟上面那段一樣
switch (a) {
case 1:
b = a + 1 ;
break ;
case 2:
b = a + 2 ;
break ;
default:
b = a ;
break ;
}


簡單來說,switch的後方,放置要進行比較的變數,而case後面,則是放置要比較的數值資料(不一定要實數,字串、布林值也可以)。

在每個區塊結束後,需要加入「break」的語法,這表示跳出這個switch。雖然不加也行,但那會造成其他的運行結果,這會在更下方的內容中說明。

最後的default,功能就跟else一樣,也是可有可無的。


除了放置變數以外,通常還可以使用「會回傳數值的函式」,來當作要比較的條件,例如以下的程式碼:

//此函式的功能,是滑鼠的左鍵按下時,會回傳true,沒有的話,則回傳false
switch (mouse_check_button_pressed(mb_left)) {
case true:
id.x = 10 ;
break ;
case false:
id.y = 10 ;
break ;
}


switch


上面已經用簡單的範例,來解釋switch的基本用法,接下來,我們來看看官方的說明書,順便解釋一些,其他可行的用法。

以下是官方說明書的內容:

switch (<expression>)
{
case <constant1>:
<code>
break;
case <constant2>:
<code>
break;
//more cases (with breaks)
default:
<code>
break;
}


Constant,指的是數值資料,意思是只能放變數、實數、字串,等等的內容。不能放置賦值、比較、邏輯,這種類型的程式碼。

至於switch的後面,實際上可以放置,任何的表達式。以下展示一個,雖然可以運行,但實際上,沒有什麼意義的程式:

//1等於1,所以會回傳true的數值
//接著會因為"true等於true",而執行第一個case的程式碼
switch (1 == 1) {
case true:
show_message("true") ;
break ;
case false:
show_message("false") ;
break ;
}


break


我們直接看,以下的這段範例:

//當按下方向鍵,或是ASDW的按鍵時,能夠朝著上下左右移動
switch (keyboard_key) {
//按著"左"或"A"的時候,實體往左邊移動,移動速度是4
//以下皆是相同邏輯的程式碼,只是移動的方向不同
case vk_left:
case ord("A"):
id.x -= 4 ;
break ;

case vk_right:
case ord("D"):
id.x += 4 ;
break ;

case vk_up:
case ord("W"):
id.y -= 4 ;
break ;

case vk_down:
case ord("S"):
id.y += 4 ;
break ;
}


從上面的這段範例,我們就可以知道,break的位置,能夠影響switch的運行方式。

如果用簡單的比喻,可以把break,理解成「終止線」。當程式運行到終止線時,就會終止switch,去執行下一段的程式碼。

接著,我們把上面那段程式碼,稍微做個改良,看看會發生什麼事情:

//為了精簡,這邊只保留了,往左邊移動的區塊
//在左鍵的case裡,加入了一行,往左移動的程式,移動速度是4
switch (keyboard_key) {
case vk_left:
id.x -= 4 ;
case ord("A"):
id.x -= 4 ;
break ;
}


這裡直接秀GIF,讓各位看一下結果:

不一樣的移動速度

不一樣的移動速度


如果我們是用「A鍵」,那移動速度會是4,但如果我們改用「左鍵」,那移動速度就會變成8。

理由也相當簡單,因為當左鍵按下時,程式會執行「2次的移動」,才會遇到break,但如果是用A鍵,那就只會移動1次。

上述的例子,是switch的特殊用法,但同時,也是初學者常犯的錯誤。如果忘了加上break,那程式就有可能,一路往下執行到結束,這樣就會失去,多選一的用途了。




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


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

免費、開心、簡單,這是我做教學的理念,我希望透過我的行動,讓人們找回自我學習的快樂,讓那些資源稀少的自學者們,也能朝著自己的夢想來前進。讓我們一起開心的做出遊戲吧!
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
這篇內容,將會講解什麼是「if else」,以及與「if else」相關的知識。包括if else的簡介、if、if else、else if、套娃式的if。
這篇內容,將會講解什麼是表達式(Expression),什麼是陳述式(Statement)。有了這些概念,各位會更容易理解,要如何設計程式碼。
這篇內容,將會講解什麼是運算子,以及與運算子相關的知識。包括運算子的簡介、賦值運算子、算術運算子、遞增/遞減、比較運算子、邏輯運算子。
這篇內容,將會講解什麼是方法,以及與方法相關的知識。包括定義Method、Method Variable 方法變數、跨區使用Method、使用函式時要注意括號。
這篇內容,將會講解什麼是腳本函式,以及與腳本函式相關的知識。包括腳本的簡介、使用函式(或全域變數)的注意事項、定義全域變數、定義函式、什麼是宣告、局部變數的應用。
這篇內容,將會講解什麼是函式,以及與函式相關的知識。包括函式的簡介、Runtime Function、自訂函式、Script Function 腳本函式、Method 方法。
這篇內容,將會講解什麼是「if else」,以及與「if else」相關的知識。包括if else的簡介、if、if else、else if、套娃式的if。
這篇內容,將會講解什麼是表達式(Expression),什麼是陳述式(Statement)。有了這些概念,各位會更容易理解,要如何設計程式碼。
這篇內容,將會講解什麼是運算子,以及與運算子相關的知識。包括運算子的簡介、賦值運算子、算術運算子、遞增/遞減、比較運算子、邏輯運算子。
這篇內容,將會講解什麼是方法,以及與方法相關的知識。包括定義Method、Method Variable 方法變數、跨區使用Method、使用函式時要注意括號。
這篇內容,將會講解什麼是腳本函式,以及與腳本函式相關的知識。包括腳本的簡介、使用函式(或全域變數)的注意事項、定義全域變數、定義函式、什麼是宣告、局部變數的應用。
這篇內容,將會講解什麼是函式,以及與函式相關的知識。包括函式的簡介、Runtime Function、自訂函式、Script Function 腳本函式、Method 方法。
你可能也想看
Google News 追蹤
Thumbnail
徵的就是你 🫵 超ㄅㄧㄤˋ 獎品搭配超瞎趴的四大主題,等你踹共啦!還有機會獲得經典的「偉士牌樂高」喔!馬上來參加本次的活動吧!
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
歡迎來到我們的Windows教學!在這裡,你將學習如何有效使用Windows操作系統。我們將探索各種基本操作,如文件管理、桌面設置、程式安裝和系統設置。無論你是新手還是希望深入了解Windows的使用者,我們的教學內容都能夠幫助你提升操作技能,使你在日常使用和工作中更加流暢和高效。立即加入我們,開啟
Thumbnail
如果你也是從事軟體相關工作的人,一定會遭遇突然需要你去學習一套你不熟悉的程式語言狀況吧,此時你會怎麼做呢? 是趕快去買書來看嗎? 還是趕快找一門程式課來上? 又或者乾脆去找會的同事來教學?
Thumbnail
此章節旨在介紹Java的基本語法、註解和變數的使用。透過學習,讀者將了解Java程式的基本結構、程式進入點的定義、如何撰寫單行和多行註解,以及如何宣告和初始化變數。
Thumbnail
在本章節中,我們將學習JavaScript的基本語法,包括如何註解代碼和如何聲明變數。瞭解這些基礎知識對於進一步學習和使用JavaScript來編寫代碼是非常重要的。
※ switch用法: ​switch是 JavaScript 中的一個控制結構,是一種更結構化的方法來替代多個 if...else 語句,特別是當需要根據同一變數的多個值進行不同操作時非常有用。 ※ switch語法: switch 語句首先評估括號內的表達式 (expression)。
Thumbnail
完成了Debug.log()的測試,接著還是要跟各位簡單講一下C#的一些規則,之後看程式會(比較)看得懂。 又講到變數? 在Unity中,變數是重要的工具,用來儲存和管理資料。讓開發者能夠靈活調整遊戲的行為和性能,減少代碼的重複性,使得遊戲開發更加高效和簡潔。透過使用變數,開發者可以輕鬆修改資料
Thumbnail
Creative Coding 作品變化概念,有或沒有的差別,隨機性,色彩模式的調整...等
Thumbnail
IF,Switch,三元運算子語法說明 IF條件選擇結構說明 IF為布林條件,當()內條件式滿足True執行if區塊的程式碼,不滿足則執行else區塊的程式碼,若無else也行。
Thumbnail
徵的就是你 🫵 超ㄅㄧㄤˋ 獎品搭配超瞎趴的四大主題,等你踹共啦!還有機會獲得經典的「偉士牌樂高」喔!馬上來參加本次的活動吧!
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
歡迎來到我們的Windows教學!在這裡,你將學習如何有效使用Windows操作系統。我們將探索各種基本操作,如文件管理、桌面設置、程式安裝和系統設置。無論你是新手還是希望深入了解Windows的使用者,我們的教學內容都能夠幫助你提升操作技能,使你在日常使用和工作中更加流暢和高效。立即加入我們,開啟
Thumbnail
如果你也是從事軟體相關工作的人,一定會遭遇突然需要你去學習一套你不熟悉的程式語言狀況吧,此時你會怎麼做呢? 是趕快去買書來看嗎? 還是趕快找一門程式課來上? 又或者乾脆去找會的同事來教學?
Thumbnail
此章節旨在介紹Java的基本語法、註解和變數的使用。透過學習,讀者將了解Java程式的基本結構、程式進入點的定義、如何撰寫單行和多行註解,以及如何宣告和初始化變數。
Thumbnail
在本章節中,我們將學習JavaScript的基本語法,包括如何註解代碼和如何聲明變數。瞭解這些基礎知識對於進一步學習和使用JavaScript來編寫代碼是非常重要的。
※ switch用法: ​switch是 JavaScript 中的一個控制結構,是一種更結構化的方法來替代多個 if...else 語句,特別是當需要根據同一變數的多個值進行不同操作時非常有用。 ※ switch語法: switch 語句首先評估括號內的表達式 (expression)。
Thumbnail
完成了Debug.log()的測試,接著還是要跟各位簡單講一下C#的一些規則,之後看程式會(比較)看得懂。 又講到變數? 在Unity中,變數是重要的工具,用來儲存和管理資料。讓開發者能夠靈活調整遊戲的行為和性能,減少代碼的重複性,使得遊戲開發更加高效和簡潔。透過使用變數,開發者可以輕鬆修改資料
Thumbnail
Creative Coding 作品變化概念,有或沒有的差別,隨機性,色彩模式的調整...等
Thumbnail
IF,Switch,三元運算子語法說明 IF條件選擇結構說明 IF為布林條件,當()內條件式滿足True執行if區塊的程式碼,不滿足則執行else區塊的程式碼,若無else也行。