9. 活化遊戲角色

在前一單元當中,我們完成了一個在限時之內,吃掉目標數量漢堡才可過關的遊戲。

其實還可以再加上一些元素,使得遊戲內容更加豐富。像是增加可愛又迷人的反派角色😈,若是玩家不小心碰到,就會扣血量💔。

當然這個反派角色,可不能停在原地一動也不動的,得要有一些變化才可以。這就是我們這個單元的重點「活化角色」,讓畫面中的角色富有彈性,彷彿活起來一般。

9.1 讓角色自已動起來-增加反派角色

首先打開上個單元設計的遊戲,我們要來增加一個「反派角色」。

對於新增角色大家應該不陌生,同樣點選「積木程式列表」當中的「角色」,使用裡面創造角色的積木程式,一樣放到「當啟動時」。

角色的圖樣您可以跟小編一樣自己設計,或是使用素材庫當中的圖樣,因為是反派,所以記得設計的凶狠一點呦!👹👹👹

設計完圖樣後,除了記得幫變數「重新取名字」之外,「類別」的部分請設定為「Enemy」。

9.2 讓角色自已動起來-增加血量功能

我們預設在遊戲進行的過程當中,只要操控的角色碰到反派,就會扣血量。目前我們的遊戲並沒有加入血量的設計,所以我們需要增加這項功能。

點選「積木程式列表」當中的「資訊」,可以在這當中看到「生命 ( Life )」相關的積木程式。

與上個單元的「得分 Score」相同,只要將「生命」相關的積木程式拖拉到「程式撰寫畫面」,並正確組合程式後,在「遊戲模擬器」畫面的左上角,會看到愛心❤圖示出現。

現在讓我們將「生命設為 ( 3 )」這個積木程式,拖拉到「當啟動時」內,放在哪裡都可以,只要放在「開始倒數 ( 10 ) 秒」之前即可。

生命的數量可以自行設定,要設定 100 也可以,設定數量只要超過4顆愛心,它會自動調整顯示方式,避免遮擋畫面。

9.3 讓角色自已動起來-減少生命值

角色碰上角色就觸發事件的方法,我們之前的單元(六)就有教過囉,在「角色」清單內有個「重疊」的積木程式。這次不一樣的地方是,要將另一個類別設定為「Enemy」。

當玩家碰上反派時,我們會改變原先的生命值,點選「積木程式列表」當中的「資訊」,可以在這當中看到「生命改變 ( -1 )」,用法也跟之前的「得分 Score」相同。

重疊角色」這個積木程式的功能是,只要在重疊的情況下,就會一直不斷執行。因為程式在執行的速度很快,也就會發生當我們碰到時還沒來的急分開,血量就被扣光了,所以我們需要在碰到時,讓這個程式暫停一下下。

點選「積木程式列表」當中的「迴圈」,可以找到「暫停 ( 100 ) 毫秒」這個積木程式。

將剛剛的程式拖拉出來,並放到「生命改變 ( -1 )」的下面,這樣就不會瞬間扣血身亡囉!

9.4 讓角色自已動起來-反派模式

在讓反派動起來之前,我們需要先調整大家的初始位置,避免遊戲才剛開始就扣到生命值。

反派常見的活動模式可分成兩種,一種是「追著玩家跑」,另一種則是「瞬間移動」,讓我們依序為大家介紹。


9.4.1 追著玩家跑

還沒開始說明前,大家可能已經先思考過了,既然要追著玩家的角色跑,是不是得要先知道「玩家角色的座標」還有「反派自己的座標」,最後計算最短距離的角度,然後追擊呢?

不不不,雖然就理論上來說沒錯,但實際操作不用這麼複雜,MakeCode Arcade 已經幫我們想好了。

讓我們點開「角色」,可以在清單內的「物理 ( Physics )」系列當中,發現「角色 ( myEnemy ) 跟隨角色 ( mySprite )」這個積木程式。

請將這個積木程式同樣拖拉到「當啟動時」內,然後點選積木程式後方的「+」號,可以看到「速度」設定的欄位。預設的 100 會是跟玩家一樣的速度,這個速度下遊玩的難度可是相當高呀!眨個眼就會被追上了,所以請改成較低的數字。

可以設定後用「遊戲模擬器」測試看看,反覆調整成自己覺得合適的速度。


9.4.2 瞬間移動

另一種方式則是讓反派瞬間「改變位置」,並以「固定的頻率」進行。像是設定每兩秒就改變反派的位置,遊玩過程當中就會遇到,反派突然出現在面前的刺激感。

隨機改變位置的方法,我們同樣也在之前的單元學習過了,關鍵是如何自動間隔一段時間就改變反派的位置呢?

我們可以善用在「遊戲」清單中的「當遊戲更新 間隔 ( 500 ) 毫秒」這個積木程式。

當我們設定好「間隔時間」,這個積木程式就會依照這個間隔,不斷運行放在裡面的積木程式。我們希望每隔 2 秒改變反派的位置,所以輸入 2000 ( 因為單位是毫秒 ) 或透過下拉式選單選擇 2 秒。

最後我們將「隨機改變位置」的方法放到裡面,記得選擇反派的「變數名稱」。

完成後用「遊戲模擬器」試玩看看。

這個單元我們新學到了「生命值」以及「活化角色」的功能,除了原先限時的緊張感,因為反派的加入,增添了不少刺激有趣的過程。

目前遊玩的方式,是以搖桿操控角色閃躲為主,接下來我們將增加角色可以攻擊的功能,就像範例程式「Space Destroyer」裡的戰鬥機一樣,可以發射光束擊碎隕石。

Leave a comment

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *