角色有了,氣氛也有了❤。要美術有美術,要音樂有音樂🎧。是時候該學個重要的程式概念了!那就是「變數」。
有學過程式的大家對變數肯定不陌生,沒學過也不用擔心,其實在之前的教學單元您已經使用過了,只是不知道它就是「變數」而已。
除了講解「變數」,我們也會在這個單元學習「碰撞事件」的處理,也就是當兩個角色碰到時,我們可以用程式讓它發生什麼事件。像是「貪吃蛇」這個遊戲,當玩家操縱的蛇🐍碰到食物時,食物會消失不見,而蛇會長大。又或是範例程式中的「Space Destroyer」這個遊戲,當隕石撞到戰鬥機🚀時,戰鬥機將產生毀壞的特效,並且我們的血量會減少,諸如此類。
7.1 認識變數
「變數」是用來儲存資料的一種媒介,大家可以把變數想像成一個盒子,這個盒子可以用來儲存任何型態的數據。我們可以將橘色恐龍放進去盒子裡,也可以放披薩或炸雞在盒子裡。
這個「變數」盒子可以被傳遞,收到的人可以打開盒子拿取裡面的資料,或是替換裡面的資料。
資料一旦被儲存,除非我們更改它,否則資料都會保留之前儲存的樣子。
7.2 變數使用方法
讓我們回到程式,在創造角色的過程中,我們把設計好的角色放到「變數」中,就像剛剛對變數的理解,角色存入之後,除非我們更動,不然存入的資料並不會被改變。
可以看到這個變數是有名稱的,沒錯,我們為了在傳遞「變數」的過程中避免拿錯「變數」這個盒子,我們會幫它取名字,就像程式預設的「mySprite」這個名字。
同時我們也可以理解為變數「mySprite」等同於「角色(橘色恐龍)」,所以當我們設定「mySprite」的位置,或是用控制器操控「mySprite」,都是在控制「角色(橘色恐龍)」。
到這裡,腦袋轉得比較快的您是不是覺得,那我為什麼不這樣?
若您撰寫像上圖中一樣的程式,實際執行之後會發現,角色居然有兩個,且一個可控制,一個不能。
這是因為「角色 ( ) 類別 (Player)」這個積木程式等於「創造新角色的意思」。若再回到剛剛的程式,您就會發現您創造了兩個角色,一個設定在位置(x: 80, y: 60)上,另一個則是依照控制器移動。這就是為什麼在「遊戲模擬器」中會出現(影?)分身的原因。
雖然還要額外新增變數很麻煩,但可以用不同的角度去思考,將帶有名稱的變數想像成是幫您的角色取名,控制的時候是去呼叫角色的名字。
點選變數積木程式中名稱的位置,可在下拉式選單中選擇「重新命名變數…」,為變數取新的名字。
7.3 創造另一個角色
接著讓我們來創造第二個角色,同樣點選「積木程式列表」當中的「角色」,使用裡面創造角色的積木程式,一樣放到「當啟動時」,並依照喜好設定角色的造型吧(目前範例在素材庫中選中了漢堡🍔)。
你會發現預設的「變數名稱」自動改變了,這是程式編輯器內部的程式避免我們出錯自動產生的。
讓我們幫這些變數取些有意義的名稱吧!產生出來的角色預設會出現在畫面的正中央,我們使用之前學過的「角色( mySprite )的位置設為 x( 0 ) y( 0 )」這個積木程式,來改變這兩個角色的位置。
我們可以為角色進行分類,類似編成一個一個的群組,方便往後可以直接對同群組的角色下達指令做群體控制。目前範例將橘色恐龍設定為「Player」,漢堡設定為「Food」,類別名稱可以自行設定。
7.4 角色重疊
如果我們想要讓「橘色恐龍」吃掉「漢堡」,當恐龍「碰撞」到漢堡後,讓漢堡消失,需要使用「重疊」這個概念。也就是當兩個角色的圖案重疊的時候,我們可以用程式編寫一些後續的事件。
請點選「積木程式列表」當中的「角色」,動用滑鼠滾輪查找有關「重疊 (Overlaps)」的積木程式,並拖拉出第一個積木程式「當角色 ( sprite ) 類別 (Player) 重疊角色…」。
將剛剛拖拉出來的積木程式放到「空白處」,因為這個積木程式的「使用方式」與「當啟動時」類似,是無法被放到其他積木內的類型,但可以將其他積木程式放到它們裡面。
讓我們來仔細看這個積木程式,描述中寫到當某個類別「重疊」另一個類別的時候,就會觸發被包在裡面的積木程式。
所以我們如果想要讓「橘色恐龍」重疊到「漢堡」時讓漢堡「消失」,我們可以將漢堡消失的積木程式放在裡面。
讓特定角色消失很簡單,在「角色」清單內有一個「角色 ( mySprite ) 摧毀」,這個積木程式可以幫我讓漢堡「消失」。
記得要選對變數「名稱」,不然什麼事情也不會發生呦!
完成後在「遊戲模擬器」執行看看吧~
「角色 ( mySprite ) 摧毀」這個積木程式還能調整摧毀時的特效,請點選積木尾端的「+」符號,就能選擇「效果」與調整效果持續的「時間」。
完成後同樣在「遊戲模擬器」執行看看,嘗試切換不同效果,找一個自己喜歡的吧!(*´∀`)~♥