GameMaker|Instance 實體|程式基礎

閱讀時間約 4 分鐘

這篇內容,將會用一個簡單的範例,來解釋物件(Object)和實體(Instance)的差別。有了這些概念,各位會更容易理解,要如何設計程式碼。

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

raw-image


前置知識


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


Instance的簡介


當GameMaker在遊戲中,生成物體時,會利用物件(Object)裡面的設定,「複製」出一個相對應的實體(Instance),接著展示在畫面中。

換句話說,我們所看到的物體,全部皆為實體,而不是物件,物件只是這些實體的「範本」而已。

也因為物件只是範本,因此實際上,我們可以利用同一個物件,生成很多個「相同功能」的實體,例如:牆壁、地板、敵人。


另外,每個實體也都會有自己的參數,包括「自訂參數」和「內建參數」。即便是相同物件的實體,他們之間也能有不一樣的數值設定。

例如:用同個物件,所產生出來的敵人,他們能有不一樣的XY座標,也能擁有不一樣的HP(生命值)。


ID


為了辨別這些實體,GameMaker會給所有實體,一個專屬的ID,只要利用這個ID,我們就能準確的,去控制我們想要操控的實體。

這組ID是GameMaker自動生成的,一般我們不會記錄這串文字,如果要使用的話,通常會把它存到「變數」裡面,再拿這個變數,來進行邏輯運算。

//這樣就能把id,存放到​inst_id裡面
inst_id = id ;

當然,也不是所有情況,都需要把這個ID,存放到變數裡面,例如:想要改變實體的座標,可以這樣子做:

//將實體的座標設定成(10,10)​
id.x = 10 ;
id.y = 10 ;


物件改變會影響實體


在幼幼班的內容裡,我們是透過「改變物件的座標」,來讓方塊產生移動的,但這個方法,只適用於「一個」方塊的情況下。

因為只要改變物件的參數,那麼,「所有」相同物件的「實體」,就會一起改變參數。

狀況就像下面的這張GIF:

所有實體會一起改變座標

所有實體會一起改變座標


上面這個範例,所使用的程式碼,是長這個樣子:

//如果滑鼠的左鍵點下
if mouse_check_button_pressed(mb_left)
{
//如果滑鼠的座標,有和obj_block碰撞(有點擊到方塊的意思)
if position_meeting( mouse_x , mouse_y , obj_block )
{
//隨機改變obj_block的XY座標
randomise() ;
block_x = irandom_range( 0 , room_width - sprite_get_width(0)) ;
block_y = irandom_range( 0 , room_height - sprite_get_height(0)) ;
obj_block.x = block_x ;
obj_block.y = block_y ;
}
}


如果,我們希望兩個實體,能夠個別偵測,各自執行改變座標的功能,那要做的事情也很簡單,我們只要把obj_block的參數,全部換成id即可。

當我們點擊紅色方塊的實體時,這個id會自動帶入,紅色方塊實體的ID,藍色方塊也是如此。

改變後的程式碼如下:

//如果滑鼠的左鍵點下
if mouse_check_button_pressed(mb_left)
{
//如果滑鼠的座標,有和實體碰撞(有點擊到方塊的意思)
if position_meeting( mouse_x , mouse_y , id )
{
//隨機改變實體的XY座標
randomise() ;
block_x = irandom_range( 0 , room_width - sprite_get_width(0) ) ;
block_y = irandom_range( 0 , room_height - sprite_get_height(0) ) ;
id.x = block_x ;
id.y = block_y ;
}
}


改良之後,方塊們就能各自點擊,而不是一起變化了:

正常的點方塊遊戲

正常的點方塊遊戲




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


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

免費、開心、簡單,這是我做教學的理念,我希望透過我的行動,讓人們找回自我學習的快樂,讓那些資源稀少的自學者們,也能朝著自己的夢想來前進。讓我們一起開心的做出遊戲吧!
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
這篇內容,將會講解什麼是變數,以及與變數相關的知識。包括變數、資料型態、變數賦值、變數的命名規則、變數的作用區域、變數的可重複性、內建變數。
這篇內容,將透過實戰教學,來講解「滑鼠點方塊」的程式碼。包括如何測試遊戲、座標系統、自訂參數和內建參數、if else、and、遊戲的邏輯設計、程式碼解析。
這篇內容,將透過實戰教學,介紹GameMaker中的Event。包括Event的簡介、Create的講解、Step的講解、Events的基本操作。
這篇內容,將透過實戰教學,介紹GameMaker中的Camera。包括Camera的簡介、設定Camera的方法、Viewport的介紹。
這篇內容,將透過實戰教學,介紹GameMaker中的Room。包括Room的簡介、調整寬高、圖層功能的概述、用Object來建立實體。
這篇內容,將透過實戰教學,介紹GameMaker中的Object。包括如何建立新的Object、Object和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參數。
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
Thumbnail
雖然電子書流行已久,但我個人依然偏愛實體書。我喜歡翻閱實體書的感覺,以及書本帶給我的獨特氛圍。儘管如此,我也瞭解到電子書的便利和節省空間的優勢,因此正考慮開始使用電子書。在比較不同品牌和價格後,我將做出我的決定。
Thumbnail
行銷魔法師與採購巨人的交鋒 過去,Kevin曾是香港知名品牌維他奶的管培生,一路升遷到資深行銷經理,從行銷經理的角度聊聊,過去擔任行銷經理期間,跟通路採購交手的經驗。​​
Thumbnail
實體書店,存在的價值是什麼? 🌟「就像星星會因為引力而互相影響,書架上的書會因為隔壁的書而有不同的意義。書架的排列改變,就會變成完全不同的世界。 」
前言 暌違四年多,我們又再度跟著華擎的腳步進軍北科大億光貝塔廳參加今年度第一彈的玩家體驗會...其實總體來講周邊環境改變不大,只是歲月增長使得路樹更加茂密(? 雖然這側人行道正在施工中但是施工廠商還是有保留一條寬度還算可以的人行道供玩家依舊可以直接從大門口上去,不用繞路 上樓往右轉
Thumbnail
在 2023 年,vocus 推出許多新功能,和創作者一起實現了變現的各種可能;從沙龍 Beta 全面升級的預告、編輯器優化、到大家熱絡交流的官方討論區、許許多多的主題策展,vocus 始終希望能提供更好的使用體驗給創作者​,並和創作者共同前進,以良好的內容與互動模式作為動能,一起持續在此交流與分享
Thumbnail
Hi there,就在上個月底時,Taylor Swift 無預警在各大串流平台上架了〈You're Losing Me〉(2023) 這首歌,這首歌原先是收錄在《Midnights》(2022) 於北美巡演時發行的限定實體 CD 當中,原本在得知這個消息時全球的歌迷都非常地興奮,沒想到在等
Thumbnail
EC2 Metadata 是可以從作業系統獲取的 EC2 信息,如 Instance ID、Instance 類型、所屬AZ等。例如,您可以通過將Instance ID 放在作業系統上運行的腳本的數據中來使 Logs 更易於查看。 獲取 Metadata 的方法是Instance Meta Dat
文/Ming Reserved Instance (RI) 相比較On-demand Instance,預留實例能夠節省高達 72% 的成本。你只需提交特定的Instance配置、Instance類型和可以是1年或3年的持續時間。 非常適合持續的工作負載,例如EC2、RDS、Elaticach
Thumbnail
天啊!怎麼這麼混亂!網路上有一卡車的文章在談class、object、instance有什麼不同;在Stack Overflow中,關於object和instance間的差異,也一再有人問起。只是啊只是,看了一大堆的討論、解釋,似乎是懂了,但又總覺得不踏實,就好像漂蕩在太空中,明明目標就在眼前,但無
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
Thumbnail
雖然電子書流行已久,但我個人依然偏愛實體書。我喜歡翻閱實體書的感覺,以及書本帶給我的獨特氛圍。儘管如此,我也瞭解到電子書的便利和節省空間的優勢,因此正考慮開始使用電子書。在比較不同品牌和價格後,我將做出我的決定。
Thumbnail
行銷魔法師與採購巨人的交鋒 過去,Kevin曾是香港知名品牌維他奶的管培生,一路升遷到資深行銷經理,從行銷經理的角度聊聊,過去擔任行銷經理期間,跟通路採購交手的經驗。​​
Thumbnail
實體書店,存在的價值是什麼? 🌟「就像星星會因為引力而互相影響,書架上的書會因為隔壁的書而有不同的意義。書架的排列改變,就會變成完全不同的世界。 」
前言 暌違四年多,我們又再度跟著華擎的腳步進軍北科大億光貝塔廳參加今年度第一彈的玩家體驗會...其實總體來講周邊環境改變不大,只是歲月增長使得路樹更加茂密(? 雖然這側人行道正在施工中但是施工廠商還是有保留一條寬度還算可以的人行道供玩家依舊可以直接從大門口上去,不用繞路 上樓往右轉
Thumbnail
在 2023 年,vocus 推出許多新功能,和創作者一起實現了變現的各種可能;從沙龍 Beta 全面升級的預告、編輯器優化、到大家熱絡交流的官方討論區、許許多多的主題策展,vocus 始終希望能提供更好的使用體驗給創作者​,並和創作者共同前進,以良好的內容與互動模式作為動能,一起持續在此交流與分享
Thumbnail
Hi there,就在上個月底時,Taylor Swift 無預警在各大串流平台上架了〈You're Losing Me〉(2023) 這首歌,這首歌原先是收錄在《Midnights》(2022) 於北美巡演時發行的限定實體 CD 當中,原本在得知這個消息時全球的歌迷都非常地興奮,沒想到在等
Thumbnail
EC2 Metadata 是可以從作業系統獲取的 EC2 信息,如 Instance ID、Instance 類型、所屬AZ等。例如,您可以通過將Instance ID 放在作業系統上運行的腳本的數據中來使 Logs 更易於查看。 獲取 Metadata 的方法是Instance Meta Dat
文/Ming Reserved Instance (RI) 相比較On-demand Instance,預留實例能夠節省高達 72% 的成本。你只需提交特定的Instance配置、Instance類型和可以是1年或3年的持續時間。 非常適合持續的工作負載,例如EC2、RDS、Elaticach
Thumbnail
天啊!怎麼這麼混亂!網路上有一卡車的文章在談class、object、instance有什麼不同;在Stack Overflow中,關於object和instance間的差異,也一再有人問起。只是啊只是,看了一大堆的討論、解釋,似乎是懂了,但又總覺得不踏實,就好像漂蕩在太空中,明明目標就在眼前,但無