GameMaker|if else|程式基礎

更新 發佈閱讀 5 分鐘

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

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

vocus|新世代的創作平台


前置知識


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


if else的簡介


在幼幼班的內容裡,已經有簡單的介紹,if else的基礎概念。這裡的教學,將會更詳細的說明,之前沒有提到的使用方法。

我們先來看一下,官方的說明書裡,是如何定義if else的:

if (<expression>)
{
<statement> ;
<statement> ;
...
}


這邊需要補充一點,那就是官方對Statement的定義,是比較寬鬆的,只要是能夠運行的程式碼,都能夠被稱為Statement。

換句話說,像是「賦值(Assignment)」這種類型的表達式(Expression),也是會被分類成Statement。


至於if後方的表達式,一般都是放入比較運算(Comparison)或邏輯運算(Logical)的程式碼。因此通常會稱呼為「條件式」或「判別式」。

如果放入賦值、字串,這一類的表達式,雖然程式不會報錯,也能夠執行,但這是沒有意義的。因為if要收到布林值(Boolean)的資料,才會產生動作。


if


這是if的圖解:

if的圖解

if的圖解


這是一段if的範例:

//如果滑鼠的左鍵點下
if (mouse_check_button_pressed(mb_left)) {
//隨機改變座標的位置,但不會超出畫面
randomise() ;
id.x = irandom_range( 0 , room_width - sprite_get_width(0) ) ;
id.y = irandom_range( 0 , room_height - sprite_get_height(0) ) ;
}


通常我們會習慣,讓if裡面的程式碼,進行「縮排」的動作,就是按鍵盤上的「Tab」,來輸入一些「空白」的符號。

讓同一組,或是同一個區塊的程式碼,對齊到同一個縮排位置,是大多數工程師的習慣,因為這樣能更容易的讀懂程式碼。

另外,判別式的外側,通常會加上括號,雖然不使用,GameMaker也一樣能運作,但是加上括號後,就能更容易的讀懂程式碼。

//有加括號的判別式
if (a > 0) && (b > 0) {/*程式碼*/}

//沒加括號的判別式
if a > 0 && b > 0 {/*程式碼*/}


if else


以下是if else的圖解:

if else的圖解

if else的圖解


這是一段if else的範例:

//如果a大於0,將座標設成(50,50)
//如果沒有,則把座標設成(10,10)​
if (a > 0){
id.x = 50 ;
id.y = 50 ;
} else {
id.x = 10 ;
id.y = 10 ;
}


else的功能,是當if的程式碼,沒有被執行的時候,就會執行else區塊裡的程式碼。

也因為這樣子的觸發條件,所以else的後方,是不需要放置判別式的。


else if


以下是else if的圖解:

else if的圖解

else if的圖解


這是一段else if的範例:

//依照變數的條件,來改變實體的座標位置​
if (a > 0) {
id.x = 0 ;
id.y = 0 ;
} else if ( a > 10) {
id.x = 10 ;
id.y = 10 ;
} else if ( a > 20) {
id.x = 20 ;
id.y = 20 ;
} else {
id.x = 30 ;
id.y = 30 ;
}


上面這段程式碼,會由上往下,來查看判別式的內容,只要發現true的數值,就會執行區塊裡的程式碼。執行完之後,會略過其他的else if和else,去執行下一段程式碼。

換句話說,就是一個多選一的程式碼,只要做完一個,其他的程式碼就不會去執行了。


else if沒有數量上限,可以依照需求來增減。至於最後的else,功能跟上個if else提到的一樣,只要上面所有的if都沒達成,那else就會執行。

不過,else的功能,是可有可無的,意思是,你也可以拿掉,只用if和else if。在這種情況下,只要條件都不符合,那就是去執行下一段的程式碼。


套娃式的if


套娃式的if大概長這樣:

if (a > 0) {
a = a + 1 ;
b = a + c ;
if (b > 0) {
a ++ ;
c ++ ;
}
a = b + c ;
c = a + c ;
}


像這種,一層套一層的程式碼,在程式設計中,是很常見的事情。這也是為什麼,我會在前面的內容中提到,程式碼要利用縮排的方式,來進行撰寫。

如果沒有用縮排的話,就會長的像下面這樣,非常的難看懂:

//超不建議的撰寫方式
if (a > 0) {
a = a + 1 ;
b = a + c ;
if (b > 0) {
a ++ ;
c ++ ;
}
a = b + c ;
c = a + c ;
}




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


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

留言
avatar-img
開心做遊戲 Happy Making Game
12會員
68內容數
免費、開心、簡單,這是我做教學的理念,我希望透過我的行動,讓人們找回自我學習的快樂,讓那些資源稀少的自學者們,也能朝著自己的夢想來前進。讓我們一起開心的做出遊戲吧!
2024/08/12
這篇內容,將會講解什麼是陣列,以及與陣列相關的知識。包括陣列的簡介、陣列的資料限制、陣列的維度、一維陣列、二維陣列。
Thumbnail
2024/08/12
這篇內容,將會講解什麼是陣列,以及與陣列相關的知識。包括陣列的簡介、陣列的資料限制、陣列的維度、一維陣列、二維陣列。
Thumbnail
2024/08/11
這篇內容,將會講解什麼是「repeat迴圈」,以及與「repeat迴圈」相關的知識。包括repeat迴圈的簡介、break、continue。
Thumbnail
2024/08/11
這篇內容,將會講解什麼是「repeat迴圈」,以及與「repeat迴圈」相關的知識。包括repeat迴圈的簡介、break、continue。
Thumbnail
2024/08/11
這篇內容,將會講解什麼是「do until」,以及與「do until」相關的知識。包括do until的簡介、break、continue。
Thumbnail
2024/08/11
這篇內容,將會講解什麼是「do until」,以及與「do until」相關的知識。包括do until的簡介、break、continue。
Thumbnail
看更多
你可能也想看
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這篇內容,將會講解什麼是方法,以及與方法相關的知識。包括定義Method、Method Variable 方法變數、跨區使用Method、使用函式時要注意括號。
Thumbnail
這篇內容,將會講解什麼是方法,以及與方法相關的知識。包括定義Method、Method Variable 方法變數、跨區使用Method、使用函式時要注意括號。
Thumbnail
這篇內容,將會用一個簡單的範例,來解釋物件(Object)和實體(Instance)的差別。包括Instance的簡介、ID、物件改變會影響實體。
Thumbnail
這篇內容,將會用一個簡單的範例,來解釋物件(Object)和實體(Instance)的差別。包括Instance的簡介、ID、物件改變會影響實體。
Thumbnail
這篇內容,將會講解什麼是腳本函式,以及與腳本函式相關的知識。包括腳本的簡介、使用函式(或全域變數)的注意事項、定義全域變數、定義函式、什麼是宣告、局部變數的應用。
Thumbnail
這篇內容,將會講解什麼是腳本函式,以及與腳本函式相關的知識。包括腳本的簡介、使用函式(或全域變數)的注意事項、定義全域變數、定義函式、什麼是宣告、局部變數的應用。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
這篇內容,將會講解什麼是「do until」,以及與「do until」相關的知識。包括do until的簡介、break、continue。
Thumbnail
這篇內容,將會講解什麼是「do until」,以及與「do until」相關的知識。包括do until的簡介、break、continue。
Thumbnail
這篇內容,將會講解什麼是表達式(Expression),什麼是陳述式(Statement)。有了這些概念,各位會更容易理解,要如何設計程式碼。
Thumbnail
這篇內容,將會講解什麼是表達式(Expression),什麼是陳述式(Statement)。有了這些概念,各位會更容易理解,要如何設計程式碼。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
這篇內容,將會講解什麼是「switch」,以及與「switch」相關的知識。包括switch的簡介、switch、break。
Thumbnail
這篇內容,將會講解什麼是「switch」,以及與「switch」相關的知識。包括switch的簡介、switch、break。
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
這篇內容,將會講解什麼是函式,以及與函式相關的知識。包括函式的簡介、Runtime Function、自訂函式、Script Function 腳本函式、Method 方法。
Thumbnail
這篇內容,將會講解什麼是函式,以及與函式相關的知識。包括函式的簡介、Runtime Function、自訂函式、Script Function 腳本函式、Method 方法。
Thumbnail
這篇內容,將會講解什麼是「if else」,以及與「if else」相關的知識。包括if else的簡介、if、if else、else if、套娃式的if。
Thumbnail
這篇內容,將會講解什麼是「if else」,以及與「if else」相關的知識。包括if else的簡介、if、if else、else if、套娃式的if。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News