今回作成するもの
Unity や Unreal Engine では Collision のように呼ばれることが多いですが、GDevelop でも同じことができます。
今回は Physics Engine (2.0) と、Platformer 関連の Behavior を使った方法でまずは簡単な方法を見ていきます。
Scene にキャラクターと床用タイルのスプライトを読み込む
床用タイルの読み込み
タイル状に正方形の画像を並べることができるように、以下の Tiled Sprite
で読み込みます。(日本語だと タイルスプライト
です)
今回は Platformer Art Buildings · Kenney のタイルを利用しています。
床用タイルの利用
読み込みが終わり、シーンにドラッグ&ドロップします。そうすると、32px 四方の小さな正方形が表示されます。
このままだとキャラクターに対しても小さいので、2倍して 64px 四方にします。
後は伸ばしたい方向の辺にカーソルを持っていけばカーソル表示が変わるので、好きな方向に伸ばします。
床用タイルは好きなように配置してください。衝突を確かめるために壁も作っておいてください。
シーン内でタイルのコンテクストメニューから Duplicate
するか、Ctrl +D
すれば Scene Object としては一つのままで、タイル用のオブジェクトを増やすことができます。
Physics Engine を使った衝突可能なオブジェクト
まず Player
と Floor
の方を使います。
Player の Behavior
OnKeyPress_Move_Fixed
- これは 【GDevelop 基礎 06】キーを押すと移動する ~斜め移動の速度の修正~ - Make Everything Games で作成していたものですが、無ければ後述する Platformer 用の Behavior を付けてください
Physics2
- ほぼデフォルトから設定は変えていません。以下だけ確認してください。
- Type:
Dynamic
- Fixed Rotation:
checked
Floor の Behavior
Physics2
Player
との違いは Type:Static
な点です。
Platformer の Behavior を利用したオブジェクト
このシリーズでは一つ一つ手作りして動きを作っていますが、パッとゲームを作るなら今後もこちらの Platformer の動きを使った方が早いです。
こちらは PlayerPlatformer
と FloorPlatformer
を使います。
PlayerPlatformer の Behavior
PlatformerObject
はデフォルトでジャンプ等もできます。
今回の変更点はスクリーンショットの一番下の Max. speed を 120
にして、先程の Player
の方の速度と合わせている点だけです。
FloorPlatformer の Behavior
Platform
の方は何も手をいれる必要はありません。
動作確認
今回はそれぞれの入力を分けていないので、どちらも左右キーで動作します。壁にはぶつかって停止し、床から落ちると角度を変えずに落ちていくのが確認できると思います。
角度を変えずに落ちるのは Fixed Rotation
の影響です。
PlayerPlatformer
は方向を変えた時に画像が反転していませんが、こちらに関しては今回は触れません。