Game:Bit 教學系列(六):設定碰撞事件

Game:Bit 教學系列(六):設定碰撞事件

一、介紹

角色有了,氣氛也有了❤。要美術有美術,要音樂有音樂🎧。是時候該學個重要的程式概念了!那就是「變數」。

有學過程式的大家對變數肯定不陌生,沒學過也不用擔心,其實在之前的教學單元您已經使用過了,只是不知道它就是「變數」而已。

除了講解「變數」,我們也會在這個單元學習「碰撞事件」的處理,也就是當兩個角色碰到時,我們可以用程式讓它發生什麼事件。像是「貪吃蛇」這個遊戲,當玩家操縱的蛇🐍碰到食物時,食物會消失不見,而蛇會長大。又或是範例程式中的「Space Destroyer」這個遊戲,當隕石撞到戰鬥機🚀時,戰鬥機將產生毀壞的特效,並且我們的血量會減少,諸如此類。

Game:Bit 教學系列(六):設定碰撞事件

二、目標

1. 認識變數的使用

2. 學會碰撞事件的處理

三、內容

1. 什麼是變數

「變數」是用來儲存資料的一種媒介,大家可以把變數想像成一個盒子,這個盒子可以用來儲存任何型態的數據。我們可以將橘色恐龍放進去盒子裡,也可以放披薩或炸雞在盒子裡。

Game:Bit 教學系列(六):設定碰撞事件

這個「變數」盒子可以被傳遞,收到的人可以打開盒子拿取裡面的資料,或是替換裡面的資料。

Game:Bit 教學系列(六):設定碰撞事件

資料一旦被儲存,除非我們更改它,否則資料都會保留之前儲存的樣子。

Game:Bit 教學系列(六):設定碰撞事件

2. 變數使用方法

讓我們回到程式,在創造角色的過程中,我們把設計好的角色放到「變數」中,就像剛剛對變數的理解,角色存入之後,除非我們更動,不然存入的資料並不會被改變。

可以看到這個變數是有名稱的,沒錯,我們為了在傳遞「變數」的過程中避免拿錯「變數」這個盒子,我們會幫它取名字,就像程式預設的「mySprite」這個名字。

Game:Bit 教學系列(六):設定碰撞事件

同時我們也可以理解為變數「mySprite」等同於「角色(橘色恐龍)」,所以當我們設定「mySprite」的位置,或是用控制器操控「mySprite」,都是在控制「角色(橘色恐龍)」。

Game:Bit 教學系列(六):設定碰撞事件

到這裡,腦袋🧠轉得比較快的您是不是覺得,那我為什麼不這樣?

Game:Bit 教學系列(六):設定碰撞事件

若您撰寫像上圖中一樣的程式,實際執行之後會發現,角色居然有兩個,且一個可控制,一個不能。

Game:Bit 教學系列(六):設定碰撞事件

這是因為「角色 ( ) 類別 (Player)」這個積木程式等於「創造新角色的意思」。若再回到剛剛的程式,您就會發現您創造了兩個角色,一個設定在位置(x: 80, y: 60)上,另一個則是依照控制器移動。這就是為什麼在「遊戲模擬器」中會出現(影?)分身的原因。

Game:Bit 教學系列(六):設定碰撞事件

雖然還要額外新增變數很麻煩,但可以用不同的角度去思考,將帶有名稱的變數想像成是幫您的角色取名,控制的時候是去呼叫角色的名字。

點選變數積木程式中名稱的位置,可在下拉式選單中選擇「重新命名變數…」,為變數取新的名字。

Game:Bit 教學系列(六):設定碰撞事件

3. 創造另一個角色

接著讓我們來創造第二個角色,同樣點選「積木程式列表」當中的「角色」,使用裡面創造角色的積木程式,一樣放到「當啟動時」,並依照喜好設定角色的造型吧(小編在素材庫中選中了漢堡🍔)。

你會發現預設的「變數名稱」自動改變了,這是程式編輯器內部的程式避免我們出錯自動產生的。

Game:Bit 教學系列(六):設定碰撞事件

讓我們幫這些變數取些有意義的名稱吧!產生出來的角色預設會出現在畫面的正中央,我們使用之前學過的「角色( mySprite )的位置設為 x( 0 ) y( 0 )」這個積木程式,來改變這兩個角色的位置。

Game:Bit 教學系列(六):設定碰撞事件

我們可以為角色進行分類,類似編成一個一個的群組,方便往後可以直接對同群組的角色下達指令做群體控制。小編將橘色恐龍設定為「Player」,漢堡設定為「Food」,類別名稱可以自行設定。

Game:Bit 教學系列(六):設定碰撞事件

4. 角色重疊

如果我們想要讓「橘色恐龍」吃掉「漢堡」,當恐龍「碰撞」到漢堡後,讓漢堡消失,需要使用「重疊」這個概念。也就是當兩個角色的圖案重疊的時候,我們可以用程式編寫一些後續的事件。

Game:Bit 教學系列(六):設定碰撞事件

請點選「積木程式列表」當中的「角色」,動用滑鼠滾輪查找有關「重疊 (Overlaps)」的積木程式,並拖拉出第一個積木程式「當角色 ( sprite ) 類別 (Player) 重疊角色…」。

Game:Bit 教學系列(六):設定碰撞事件

將剛剛拖拉出來的積木程式放到「空白處」,因為這個積木程式的「使用方式」與「當啟動時」類似,是無法被放到其他積木內的類型,但可以將其他積木程式放到它們裡面。

Game:Bit 教學系列(六):設定碰撞事件

讓我們來仔細看這個積木程式,描述中寫到當某個類別「重疊」另一個類別的時候,就會觸發被包在裡面的積木程式。

所以我們如果想要讓「橘色恐龍」重疊到「漢堡」時讓漢堡「消失」,我們可以將漢堡消失的積木程式放在裡面。

Game:Bit 教學系列(六):設定碰撞事件

讓特定角色消失很簡單,在「角色」清單內有一個「角色 ( mySprite ) 摧毀」,這個積木程式可以幫我讓漢堡「消失」。

記得要選對變數「名稱」,不然什麼事情也不會發生呦!

Game:Bit 教學系列(六):設定碰撞事件

完成後在「遊戲模擬器」執行看看吧~

Game:Bit 教學系列(六):設定碰撞事件

角色 ( mySprite ) 摧毀」這個積木程式還能調整摧毀時的特效,請點選積木尾端的「」符號,就能選擇「效果」與調整效果持續的「時間」。

Game:Bit 教學系列(六):設定碰撞事件

完成後同樣在「遊戲模擬器」執行看看,嘗試切換不同效果,找一個自己喜歡的吧!(*´∀`)~♥

Game:Bit 教學系列(六):設定碰撞事件

四、結論

這個單元帶大家認識了變數的概念,也學會讓角色與角色之間產生互動。雖然知道的功能不多,但已經可以寫一個簡單的遊戲了。

下個單元將帶大家製作一個類似貪吃蛇的遊戲,延伸這次學到的內容。還沒準備好自己角色的朋友,記得趕在下一個單元前完成呦!