GameMaker|if else|程式基礎

閱讀時間約 5 分鐘

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

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

raw-image


前置知識


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


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 ;
}




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


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

免費、開心、簡單,這是我做教學的理念,我希望透過我的行動,讓人們找回自我學習的快樂,讓那些資源稀少的自學者們,也能朝著自己的夢想來前進。讓我們一起開心的做出遊戲吧!
留言0
查看全部
發表第一個留言支持創作者!
這篇內容,將會講解什麼是表達式(Expression),什麼是陳述式(Statement)。有了這些概念,各位會更容易理解,要如何設計程式碼。
這篇內容,將會講解什麼是運算子,以及與運算子相關的知識。包括運算子的簡介、賦值運算子、算術運算子、遞增/遞減、比較運算子、邏輯運算子。
這篇內容,將會講解什麼是方法,以及與方法相關的知識。包括定義Method、Method Variable 方法變數、跨區使用Method、使用函式時要注意括號。
這篇內容,將會講解什麼是腳本函式,以及與腳本函式相關的知識。包括腳本的簡介、使用函式(或全域變數)的注意事項、定義全域變數、定義函式、什麼是宣告、局部變數的應用。
這篇內容,將會講解什麼是函式,以及與函式相關的知識。包括函式的簡介、Runtime Function、自訂函式、Script Function 腳本函式、Method 方法。
這篇內容,將會講解什麼是變數範圍,以及與變數範圍相關的知識。包括變數範圍的簡介、實體變數、全域變數、局部變數、常數。
這篇內容,將會講解什麼是表達式(Expression),什麼是陳述式(Statement)。有了這些概念,各位會更容易理解,要如何設計程式碼。
這篇內容,將會講解什麼是運算子,以及與運算子相關的知識。包括運算子的簡介、賦值運算子、算術運算子、遞增/遞減、比較運算子、邏輯運算子。
這篇內容,將會講解什麼是方法,以及與方法相關的知識。包括定義Method、Method Variable 方法變數、跨區使用Method、使用函式時要注意括號。
這篇內容,將會講解什麼是腳本函式,以及與腳本函式相關的知識。包括腳本的簡介、使用函式(或全域變數)的注意事項、定義全域變數、定義函式、什麼是宣告、局部變數的應用。
這篇內容,將會講解什麼是函式,以及與函式相關的知識。包括函式的簡介、Runtime Function、自訂函式、Script Function 腳本函式、Method 方法。
這篇內容,將會講解什麼是變數範圍,以及與變數範圍相關的知識。包括變數範圍的簡介、實體變數、全域變數、局部變數、常數。
你可能也想看
Thumbnail
1.加權指數與櫃買指數 週五的加權指數在非農就業數據開出來後,雖稍微低於預期,但指數仍向上噴出,在美股開盤後於21500形成一個爆量假突破後急轉直下,就一路收至最低。 台股方面走勢需觀察週一在斷頭潮出現後,週二或週三開始有無買單進場支撐,在沒有明確的反轉訊號形成前,小夥伴盡量不要貿然抄底,或是追空
Thumbnail
重點摘要: 1.9 月降息 2 碼、進一步暗示年內還有 50 bp 降息 2.SEP 上修失業率預期,但快速的降息速率將有助失業率觸頂 3.未來幾個月經濟數據將繼續轉弱,經濟復甦的時點或是 1Q25 季底附近
Thumbnail
近期的「貼文發佈流程 & 版型大更新」功能大家使用了嗎? 新版式整體視覺上「更加凸顯圖片」,為了搭配這次的更新,我們推出首次貼文策展 ❤️ 使用貼文功能並完成這次的指定任務,還有機會獲得富士即可拍,讓你的美好回憶都可以用即可拍珍藏!
Thumbnail
這篇內容,將會講解什麼是表達式(Expression),什麼是陳述式(Statement)。有了這些概念,各位會更容易理解,要如何設計程式碼。
Thumbnail
這篇內容,將會講解什麼是方法,以及與方法相關的知識。包括定義Method、Method Variable 方法變數、跨區使用Method、使用函式時要注意括號。
Thumbnail
這篇內容,將會講解什麼是函式,以及與函式相關的知識。包括函式的簡介、Runtime Function、自訂函式、Script Function 腳本函式、Method 方法。
Thumbnail
這篇內容,將會用一個簡單的範例,來解釋物件(Object)和實體(Instance)的差別。包括Instance的簡介、ID、物件改變會影響實體。
Thumbnail
這篇內容,將會講解什麼是變數,以及與變數相關的知識。包括變數、資料型態、變數賦值、變數的命名規則、變數的作用區域、變數的可重複性、內建變數。
Thumbnail
這篇內容,將透過實戰教學,來講解「滑鼠點方塊」的程式碼。包括如何測試遊戲、座標系統、自訂參數和內建參數、if else、and、遊戲的邏輯設計、程式碼解析。
Thumbnail
這篇內容,將簡單介紹Asset Browser、Workspace、Inspector、Code Browser,作為入門的介面導覽。
Thumbnail
此章節的目的是介紹Java程式語言中的流程控制結構,包括條件語句(if, else if, else)、三元運算子、switch語句,以及各種迴圈(for, foreach, while)。同時,也解釋了如何在迴圈中使用控制語句來改變程式的執行流程。每種主題都配有示例程式碼以幫助理解。
Thumbnail
IF,Switch,三元運算子語法說明 IF條件選擇結構說明 IF為布林條件,當()內條件式滿足True執行if區塊的程式碼,不滿足則執行else區塊的程式碼,若無else也行。
Thumbnail
1.加權指數與櫃買指數 週五的加權指數在非農就業數據開出來後,雖稍微低於預期,但指數仍向上噴出,在美股開盤後於21500形成一個爆量假突破後急轉直下,就一路收至最低。 台股方面走勢需觀察週一在斷頭潮出現後,週二或週三開始有無買單進場支撐,在沒有明確的反轉訊號形成前,小夥伴盡量不要貿然抄底,或是追空
Thumbnail
重點摘要: 1.9 月降息 2 碼、進一步暗示年內還有 50 bp 降息 2.SEP 上修失業率預期,但快速的降息速率將有助失業率觸頂 3.未來幾個月經濟數據將繼續轉弱,經濟復甦的時點或是 1Q25 季底附近
Thumbnail
近期的「貼文發佈流程 & 版型大更新」功能大家使用了嗎? 新版式整體視覺上「更加凸顯圖片」,為了搭配這次的更新,我們推出首次貼文策展 ❤️ 使用貼文功能並完成這次的指定任務,還有機會獲得富士即可拍,讓你的美好回憶都可以用即可拍珍藏!
Thumbnail
這篇內容,將會講解什麼是表達式(Expression),什麼是陳述式(Statement)。有了這些概念,各位會更容易理解,要如何設計程式碼。
Thumbnail
這篇內容,將會講解什麼是方法,以及與方法相關的知識。包括定義Method、Method Variable 方法變數、跨區使用Method、使用函式時要注意括號。
Thumbnail
這篇內容,將會講解什麼是函式,以及與函式相關的知識。包括函式的簡介、Runtime Function、自訂函式、Script Function 腳本函式、Method 方法。
Thumbnail
這篇內容,將會用一個簡單的範例,來解釋物件(Object)和實體(Instance)的差別。包括Instance的簡介、ID、物件改變會影響實體。
Thumbnail
這篇內容,將會講解什麼是變數,以及與變數相關的知識。包括變數、資料型態、變數賦值、變數的命名規則、變數的作用區域、變數的可重複性、內建變數。
Thumbnail
這篇內容,將透過實戰教學,來講解「滑鼠點方塊」的程式碼。包括如何測試遊戲、座標系統、自訂參數和內建參數、if else、and、遊戲的邏輯設計、程式碼解析。
Thumbnail
這篇內容,將簡單介紹Asset Browser、Workspace、Inspector、Code Browser,作為入門的介面導覽。
Thumbnail
此章節的目的是介紹Java程式語言中的流程控制結構,包括條件語句(if, else if, else)、三元運算子、switch語句,以及各種迴圈(for, foreach, while)。同時,也解釋了如何在迴圈中使用控制語句來改變程式的執行流程。每種主題都配有示例程式碼以幫助理解。
Thumbnail
IF,Switch,三元運算子語法說明 IF條件選擇結構說明 IF為布林條件,當()內條件式滿足True執行if區塊的程式碼,不滿足則執行else區塊的程式碼,若無else也行。