第 4 部分:建立你的玩家
在 第 3 部分中,你學會了如何建立第一個關卡。在本教學中,我們將開始把空蕩蕩的關卡變成一款遊戲。
平台遊戲就像 Mario 這類遊戲。一般來說,平台遊戲有一個可以用搖桿操控的角色,玩家可以讓角色四處跳躍,解開各種謎題。
本指南的這一部分承接 第 3 部分,並假設你已經使用 Platformer Starter Pack 中的素材建立好關卡。你可以從 Asset Shop 下載這組素材。
加入玩家:
首先,你需要將玩家的圖像加入物件 Dock。先前往 Asset Library 中的 Downloads 資料夾,找到動畫角色 Green Space Man Character。
在 Asset Library 中點選動畫角色,即可查看所有可用的動畫循環。
我們不希望玩家站著不動時看起來像在走路,因此會使用「Stand」動畫循環。點選「Stand」動畫循環,將它加入 Dock。
**注意:**如果你使用的動畫圖像沒有站立或閒置動畫循環,隨時可以按住動畫循環,然後從 Asset Menu 選取「View Frames」,以選擇動畫中的單一影格。
現在角色已經在 Object Dock 中,你只要將它從 Dock 拖曳到場景裡即可。
移動玩家:
現在我們要讓角色活起來,並讓它可以用搖桿移動。hyperPad 內建的行為讓這個過程變得非常簡單。
首先,點選剛才拖曳到畫布上的角色,開啟 Object Properties。
在 Object Properties 的「Physics Tab」中,點選「Behaviors」按鈕下方的物理物件圖示( ),將角色設為「Physics Type」。
**注意:**物理物件會遵循重力定律,並對其他物件和力產生反應。
接著點選 Behaviors 按鈕,開啟行為編輯器,開始讓角色變得可操控。
行為編輯器的上方工具列會顯示不同的分類,左側則會列出行為。
由於你已加入 Animation Cycle,畫布上已經自動加入「Play Animation」行為。
在「interaction」分類中,將「Joystick Controlled」行為拖曳到畫布上。
加入這個行為後,系統也會自動在你的 GLOBAL UI Layer 上建立並加入搖桿。如果 UI Layer 上已經有搖桿,這個行為就會自動使用現有的搖桿,而不會再新增一個。
現在你可以按下播放,執行遊戲了!不過你可能會發現,玩家只是在畫面上滑來滑去……
動畫:
讓我們為玩家加入一些動畫,讓遊戲看起來更好。
首先,讓角色在搖桿向左或向右移動時走路。
要做到這一點,你需要查看「advanced」互動行為。在「Interaction」分類中,點選行為清單底部的「Advanced」選項。
在「advanced」清單中,將「Joystick Left」和「Joystick Right」加入畫布。
接著在「FX」分類中加入「Play Animation」行為,並將 Joystick Left 和 Joystick Right 都連接到這個新加入的 Play Animation。
現在點選「Play Animation」行為,查看 Behavior Properties。
最上方的第一個方框是要套用動畫的物件。hyperPad 會自動選取目前的物件。
**注意:**你可以點選這裡,選擇場景中的其他物件。不過目前我們不需要這麼做,所以保持原樣即可。
下方的方框代表要播放的動畫。由於目前尚未選擇要播放的動畫,這裡會是空白的。
點選空白方框以選取動畫。
請注意,畫面底部會出現一條底片列。點選 Asset Library 圖示,將動畫循環加入底片列。
找到動畫角色「Green Spaceman」,並選取「Walk」循環。請注意,動畫的每個影格都會自動加入底片列。點選任意位置關閉底片列,並返回屬性畫面。
**注意:**你也可以將個別圖片或動畫影格加入動畫底片列,不一定只能使用預先建立好的動畫循環。
接著,在 Walk 動畫的行為屬性中,關閉「Loop Animation」切換開關。我們要關閉這個開關,因為 Joystick Left 和 Joystick Right 會替我們循環播放動畫,動畫只會在搖桿向左或向右時播放。
最後,為這個行為重新命名,方便之後尋找。在行為屬性中,點選最上方的行為名稱。畫面會顯示鍵盤,讓你輸入新名稱。我們將它命名為「Walk Animation」。
現在按下播放,角色應該就會在搖桿控制下移動,並播放動畫了!
跳躍:
平台遊戲不能少了跳躍!在 hyperPad 中,讓玩家跳躍非常簡單。
在 Green Spaceman 的行為編輯器中,點選「Interaction」分類,然後從左側的行為清單中,將「Jump with Button」行為拖曳到畫布上。就像 Joystick Controlled 行為一樣,Jump with Button 也會幫你處理許多物件移動的部分,並自動在 Global UI Layer 上加入一個按鈕。
點選跳躍行為即可查看其屬性。在跳躍行為屬性中,你可以更改播放的音效、跳躍力度等設定。本教學中,我們會維持所有設定不變,只調整跳躍力度。
我必須將跳躍力度設為 18,才能跳過第 3 部分所建立關卡中的所有障礙物。如果你設計了自己的關卡,可能需要調整跳躍數值,直到效果符合需求。
現在按下播放,你會看到玩家跑動和跳躍。不過你可能已經注意到,角色在空中跳躍時仍會繼續走路……讓我們來修正這個問題!
首先,讓我們在跳躍時播放動畫。
在「Interaction」分類中加入「Started Touching」行為,然後點選剛加入的行為以查看屬性。
現在我們需要更改這個行為,讓它只在開始觸碰跳躍按鈕時才生效。在「Started Touching」行為屬性中,點選最上方方框裡的太空人圖像。
這會帶你前往「Object Selector」畫面。在這裡,你可以選取場景中的任何物件或 UI 元素。你可能會發現無法選取按鈕,這是因為 Green Spaceman 位於 Main Layer,而按鈕位於 Global UI Layer。點選畫面右側圖層列中的「Global UI」Layer,即可選取按鈕。
選取按鈕後,點選底部的確認圖示。
接著再加入一個 Play Animation 行為,並將它連接到先前加入的 Started Touching 行為。
和之前一樣,你可以為這個行為重新命名,並在 Behavior Properties 中選取動畫。
若要重新命名,請在物件屬性中點選行為標題,然後輸入新名稱。我使用「Jump animation」。
和走路動畫一樣,你需要為跳躍選取一個循環。點選行為屬性中的第二個空白方框,然後從 Green Spaceman 可用的動畫中選取 Jump 動畫循環。
你也需要關閉「Loop Animation」和「Restore Frame」切換開關。
現在按下播放,你會看到角色在跳躍時看起來真的像在跳了!不過還有兩個小問題:
- 角色落地時不會切換回站立動畫。
- 如果角色在空中移動,就會在空中播放走路動畫。
要解決第一個問題,請切換至「Transform」行為分類,然後點選進階按鈕,查看進階行為。
現在將「Stopped Falling」行為拖曳到畫布上,再從 FX 分類中拖曳另一個「Play Animation」行為,並將它連接到「Stopped Falling」。
在剛加入的「Play Animation」中,選取 Green Spaceman 的「Stand」動畫循環,關閉「Restore Frame」和「Loop Animation」切換開關,並將 Play Animation 行為重新命名為「Standing」。
現在 Green Spaceman 應該可以跳躍,而且落地時看起來會是站立的。
要解決第二個問題,我們需要停止角色跳躍時播放的動畫。
切換到「Custom」行為分類,拖曳「Behavior Off」到畫布上,並將它連接到先前為 Jump Animation 加入的「Started Touching」行為。
現在點選「Behavior Off」,再點選空白方框,從清單中選取一個行為。找到連接到 Joystick Left 和 Joystick Right 行為的「Play Animation」(Walk Animation)行為。
接著加入「Behavior On」,並將它連接到先前加入的「Stopped Falling」行為。
同樣地,點選空白方框,選取播放走路動畫的 Play Animation(Walk Animation)行為。
現在按下播放,你的角色應該就能流暢地移動和跳躍了!
移動畫面:
你可能已經注意到,如果角色移動得太遠,就會跑出畫面。在傳統平台遊戲中,畫面通常會跟著玩家移動。以 Mario 為例,Mario 通常會一直待在畫面中央附近(位置會稍有變化)。
讓我們讓畫面跟著 Green Spaceman 移動,這樣他就不會跑出畫面。
保持在 Green Spaceman 的行為編輯器中,切換至「Screen」分類,並加入「Screen Follow」行為。「Screen Follow」行為會讓畫面跟著選取的物件移動。
接著開啟 Screen Follow 的行為屬性,並關閉「Follows Y」切換開關。這樣畫面就會跟著玩家向左或向右移動,而不會上下移動。
現在按下播放,你應該就能操控動畫角色跑過關卡,同時讓畫面跟著角色移動。
你可以從 Hub 下載第 4 部分的完成版本,看看實際效果。
在第 5 部分中,我們將加入更多遊戲內容,讓玩家可以收集金幣並累積分數。

