GameMaker|Operator 運算子|程式基礎

閱讀時間約 7 分鐘

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

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

raw-image


前置知識


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


Operator的簡介


在我們常用的數學裡,加減乘除會被稱作運算子(Operator),而數字會被稱為運算元(Operand)。

在程式語言裡面,也是類似的概念,只是運算子的種類,不只有加減乘除,還有其他類型的運算子,例如:賦值運算子、比較運算子、邏輯運算子,等等。

而程式語言裡面的運算元,則是變數(Variable)、函式(Function),以及各種不同類型的數值。


在這篇教學中,只會介紹比較常用的運算子,並且在最下方,附上官方的說明書連結。

如果遇到沒見過的運算子,可以試著在說明書裡,尋找答案。


賦值運算子 Assignment Operator


賦值的意義,已經在變數的教學中說明過,而「=」的符號,就是GameMaker中的賦值運算子。

//賦值運算子的使用範例
a =3 ;
b = "Hi" ;


算術運算子 Arithmetic Operator


我們常見的加減乘除,就是所謂的算術運算子,只是除法的部分,會分的比較細,有取小數的、有取商數的、有取餘數的。

算術運算子的用法,跟我們常用的數學一樣,是先乘除,後加減,如果有遇到括號,則會先運算括號裡的內容。

此外,乘方(同個數連續相乘,例如:53)在GameMaker中,是使用Runtime Function來處理,而「不是」使用我們常見的「^」符號(^有另外的功能,但初學者用不到)。

下方將會展示一些例子:

a = 1 + 2 ; //結果,a=3
a = 3 - 1 ; //結果,a=2
a = 5 * 2 ; //結果,a=10
a = 9 / 2 ; //結果,a=4.5,這個是取小數
a = 9 div 2 ; //結果,a=4,這個是取商數​
a = 9 mod 2 ; //結果,a=1,這個是取餘數​
a = 9 % 2 ; //結果,a=1,這個是取餘數
a = 5 + 1 * 2 ;//結果,a=7,記得要先乘除,後加減,如果怕搞亂,建議加上括號​
a = 5 + (1 * 2) ; //加上括號,會有比較高的辨識度
a = power( 5 , 3 ) ; //結果,a=125,這個函式代表5的三次方


上面是一些普通的運算,接下來會展示一些,利用算術運算子,和賦值運算子,所結合出來的特殊運算功能:

a += 1 ; //表示a=a+1
a -= 1 ; //表示a=a-1
a *= 2 ; //表示a=a*2
​a /= 2 ; //表示a=a/2
a %= 2 ; //表示a=a%2
//div和mod,無法使用這種結合功能​


最後要講一下,除了實數(Real Number)的計算之外,其他類型的資料,也有類似的用法,例如:字串(String)的相加。

不過,這邊沒打算進行講解,只是讓各位有這個概念。如果之後有遇到相關的範例,會再花點時間來說明。


遞增/遞減 Increment/Decrement Operator


所謂的遞增和遞減,分別是「++」和「--」,常見的用法如下:

a ++ ; //表示a=a+1
a -- ; //表示a=a-1​

上述的功能,是在程式中,很常見的功能,不管是規劃計時器,或是改變物件的狀態,都有可能會使用到。


另外,遞增和遞減,還有類似「++a」、「b=++a」、「b=a++」的用法。

個人是覺得,初學者用不到這些功能,因此這邊並不打算講解。如果之後有遇到相關的範例,會再花點時間來說明。


比較運算子 Comparison Operator


所謂的比較運算子,就是大於、小於、等於,這種類型的運算功能。

比較運算子有個特色,那就是比較完之後,會回傳一個true或false的數值(算式成立,會回傳true,不成立的話,會回傳false)。

也因為這個特色,導致比較運算子,常常會搭配「if else」的功能來使用(if收到true會執行,收到false會不執行)。

以下是一些常用的範例:

if (a > b) {/*程式碼*/} //如果a大於b,就執行程式碼
if (a >= b) {/*程式碼*/} //如果a大於等於b,就執行程式碼
if (a < b) {/*程式碼*/} //如果a小於b,就執行程式碼
if (a <= b) {/*程式碼*/} //如果a小於等於b,就執行程式碼
if (a == b) {/*程式碼*/} //如果a等於b,就執行程式碼,注意,要使用"兩個等於"符號
if (a != b) {/*程式碼*/} //如果a不等於b,就執行程式碼,"驚嘆號"代表"不"的意思


邏輯運算子 Logical Operator


邏輯運算子的用法,跟比較運算子相似,也是會回傳true和false的數值。如果用簡單的說法來舉例,大概就是:當A「和」B都成立的時候,就回傳true。

除了「和」以外,還有「或」、「互斥或」、「不」,這些邏輯運算子。

邏輯運算子通常會和比較運算子,一起做使用。以下會用一些範例,來做說明:

//如果a大於b,且c大於d,就執行程式碼(兩個都成立才能執行)(兩種符號通用)
if (a > b) and ( c > d ) {/*程式碼*/}
if (a > b) && ( c > d ) {/*程式碼*/}

//如果a大於b,或c大於d,就執行程式碼(其中一個成立就執行)(兩種符號通用)
if (a > b) or ( c > d ) {/*程式碼*/}
if (a > b) || ( c > d ) {/*程式碼*/}

//以下是"互斥或"的寫法,但暫時不說明,未來如果有用到,會再另外說明(兩種符號通用)
if (a > b) xor ( c > d ) {/*程式碼*/}
if (a > b) ^^ ( c > d ) {/*程式碼*/}

//"驚嘆號"表示"不"的意思,各位可以用"相反"的概念來理解
//當滑鼠左鍵"沒有"被按下時,就執行程式碼(有的相反是沒有)
if (!mouse_check_button_pressed(mb_left)) {/*程式碼*/}


這邊深入探討一下,最後一個「不」的範例。

範例裡的函式,會在滑鼠的左鍵按下時,回傳true的數值,但因為前面有個驚嘆號,因此訊號就會被「相反」,變成了false。

當if收到false的數值,就不會執行程式碼,最終,就變成了:當滑鼠左鍵「沒有」被按下時,就執行程式碼。


官方的說明書


其實大部分的運算子,都已經講解過了,但如果你想要深入了解,其他比較進階的運算子,可以參考官方提供的說明書。

GameMaker的運算子




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


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

免費、開心、簡單,這是我做教學的理念,我希望透過我的行動,讓人們找回自我學習的快樂,讓那些資源稀少的自學者們,也能朝著自己的夢想來前進。讓我們一起開心的做出遊戲吧!
留言0
查看全部
發表第一個留言支持創作者!
這篇內容,將會講解什麼是方法,以及與方法相關的知識。包括定義Method、Method Variable 方法變數、跨區使用Method、使用函式時要注意括號。
這篇內容,將會講解什麼是腳本函式,以及與腳本函式相關的知識。包括腳本的簡介、使用函式(或全域變數)的注意事項、定義全域變數、定義函式、什麼是宣告、局部變數的應用。
這篇內容,將會講解什麼是函式,以及與函式相關的知識。包括函式的簡介、Runtime Function、自訂函式、Script Function 腳本函式、Method 方法。
這篇內容,將會講解什麼是變數範圍,以及與變數範圍相關的知識。包括變數範圍的簡介、實體變數、全域變數、局部變數、常數。
這篇內容,將會講解什麼是資料型態,以及與資料型態相關的知識。包括資料型態的簡介、實數、布林值、 字串、陣列。
這篇內容,將會用一個簡單的範例,來解釋物件(Object)和實體(Instance)的差別。包括Instance的簡介、ID、物件改變會影響實體。
這篇內容,將會講解什麼是方法,以及與方法相關的知識。包括定義Method、Method Variable 方法變數、跨區使用Method、使用函式時要注意括號。
這篇內容,將會講解什麼是腳本函式,以及與腳本函式相關的知識。包括腳本的簡介、使用函式(或全域變數)的注意事項、定義全域變數、定義函式、什麼是宣告、局部變數的應用。
這篇內容,將會講解什麼是函式,以及與函式相關的知識。包括函式的簡介、Runtime Function、自訂函式、Script Function 腳本函式、Method 方法。
這篇內容,將會講解什麼是變數範圍,以及與變數範圍相關的知識。包括變數範圍的簡介、實體變數、全域變數、局部變數、常數。
這篇內容,將會講解什麼是資料型態,以及與資料型態相關的知識。包括資料型態的簡介、實數、布林值、 字串、陣列。
這篇內容,將會用一個簡單的範例,來解釋物件(Object)和實體(Instance)的差別。包括Instance的簡介、ID、物件改變會影響實體。
你可能也想看
Thumbnail
1.加權指數與櫃買指數 週五的加權指數在非農就業數據開出來後,雖稍微低於預期,但指數仍向上噴出,在美股開盤後於21500形成一個爆量假突破後急轉直下,就一路收至最低。 台股方面走勢需觀察週一在斷頭潮出現後,週二或週三開始有無買單進場支撐,在沒有明確的反轉訊號形成前,小夥伴盡量不要貿然抄底,或是追空
Thumbnail
近期的「貼文發佈流程 & 版型大更新」功能大家使用了嗎? 新版式整體視覺上「更加凸顯圖片」,為了搭配這次的更新,我們推出首次貼文策展 ❤️ 使用貼文功能並完成這次的指定任務,還有機會獲得富士即可拍,讓你的美好回憶都可以用即可拍珍藏!
Thumbnail
這篇內容,將會講解什麼是方法,以及與方法相關的知識。包括定義Method、Method Variable 方法變數、跨區使用Method、使用函式時要注意括號。
Thumbnail
這篇內容,將會講解什麼是函式,以及與函式相關的知識。包括函式的簡介、Runtime Function、自訂函式、Script Function 腳本函式、Method 方法。
Thumbnail
這篇內容,將會講解什麼是資料型態,以及與資料型態相關的知識。包括資料型態的簡介、實數、布林值、 字串、陣列。
Thumbnail
這篇內容,將會講解什麼是變數,以及與變數相關的知識。包括變數、資料型態、變數賦值、變數的命名規則、變數的作用區域、變數的可重複性、內建變數。
Thumbnail
這篇內容,將透過實戰教學,來講解「滑鼠點方塊」的程式碼。包括如何測試遊戲、座標系統、自訂參數和內建參數、if else、and、遊戲的邏輯設計、程式碼解析。
Thumbnail
本章節的目的是介紹Java中的運算符,包括算數運算符、比較運算符、賦值運算符、位元運算符以及運算符的優先等級。通過本章節,讀者可以了解到如何在Java中進行基本的數學運算、比較兩個值的大小、將值賦給變數、進行位元運算,以及在複雜表達式中如何正確地理解運算符的優先等級。
Thumbnail
此章節旨在介紹TypeScript中的運算符,包括算數運算子、比較運算子、賦值運算子、位元運算子,以及他們的優先等級。每種運算子都以清晰的解釋和代碼範例進行詳細說明,幫助讀者理解並有效地在自己的程式碼中使用。
Thumbnail
1.加權指數與櫃買指數 週五的加權指數在非農就業數據開出來後,雖稍微低於預期,但指數仍向上噴出,在美股開盤後於21500形成一個爆量假突破後急轉直下,就一路收至最低。 台股方面走勢需觀察週一在斷頭潮出現後,週二或週三開始有無買單進場支撐,在沒有明確的反轉訊號形成前,小夥伴盡量不要貿然抄底,或是追空
Thumbnail
近期的「貼文發佈流程 & 版型大更新」功能大家使用了嗎? 新版式整體視覺上「更加凸顯圖片」,為了搭配這次的更新,我們推出首次貼文策展 ❤️ 使用貼文功能並完成這次的指定任務,還有機會獲得富士即可拍,讓你的美好回憶都可以用即可拍珍藏!
Thumbnail
這篇內容,將會講解什麼是方法,以及與方法相關的知識。包括定義Method、Method Variable 方法變數、跨區使用Method、使用函式時要注意括號。
Thumbnail
這篇內容,將會講解什麼是函式,以及與函式相關的知識。包括函式的簡介、Runtime Function、自訂函式、Script Function 腳本函式、Method 方法。
Thumbnail
這篇內容,將會講解什麼是資料型態,以及與資料型態相關的知識。包括資料型態的簡介、實數、布林值、 字串、陣列。
Thumbnail
這篇內容,將會講解什麼是變數,以及與變數相關的知識。包括變數、資料型態、變數賦值、變數的命名規則、變數的作用區域、變數的可重複性、內建變數。
Thumbnail
這篇內容,將透過實戰教學,來講解「滑鼠點方塊」的程式碼。包括如何測試遊戲、座標系統、自訂參數和內建參數、if else、and、遊戲的邏輯設計、程式碼解析。
Thumbnail
本章節的目的是介紹Java中的運算符,包括算數運算符、比較運算符、賦值運算符、位元運算符以及運算符的優先等級。通過本章節,讀者可以了解到如何在Java中進行基本的數學運算、比較兩個值的大小、將值賦給變數、進行位元運算,以及在複雜表達式中如何正確地理解運算符的優先等級。
Thumbnail
此章節旨在介紹TypeScript中的運算符,包括算數運算子、比較運算子、賦值運算子、位元運算子,以及他們的優先等級。每種運算子都以清晰的解釋和代碼範例進行詳細說明,幫助讀者理解並有效地在自己的程式碼中使用。