今回つくる動き
難易度
今回はスクラッチでプラットフォームゲーム(プラットフォーマー)の基本の動きの作り方を解説していきます。前回の記事では左右移動・ジャンプ・壁キックを作りましたが、今回は、横移動に慣性と抵抗の考え方を加えていきます。これにより着地時にピタッと止まらずに勢い余って少し動くような動きを作ることができます。この効果を加えることでワンランク上のプラットフォームゲームを作ることができるようになります。
Lv1にまだ取り組んでいない人は是非こちらから取り組んでください。
まずは実際にゲームをプレイしてみてください。左右キーで横移動、シフトキーでジャンプです。
Lv1の復習
まずはLv1の復習です。Lv1では横移動・ジャンプ・壁キックができるようになりました。
コードは以下の通りです。こちらからも中身を確認できます。
このコードでプレイヤー(ボール)を動かすとジャンプ中に右矢印キーを押している間だけ右に飛んでいき、矢印キーを離すと真下に降りてピタッと止まります。しかし、実際のボールの動きには慣性と抵抗がはたらきます。
このことをプラットフォームゲームに反映させるために、横向きの勢いという変数を作り主に左右移動のブロックのコードを変更していきます。
横向きの勢いを追加
ではLv1のコードを変更していきます。コードは以下の通りです。横向きの勢いという変数をつくって左右の矢印キーを押している間、ぐぐっと加速し、動いているときは常に動いている向きと逆向きにに抵抗がかかるようにします。重力の横バージョンと考えれば理解しやすいかもしれません。
実際にプレイヤーを動かしてみましょう。以下のように矢印キーを押していない時にも慣性と抵抗でじわっと動けば成功です。
壁キックの動きの変更
横向きの勢いの考え方が入ってきた時に、壁キックのコードも変更していかなければなりません。
以下のように壁キックを変更します。
これで、壁キックで壁を登れるようになりました。実際には壁をキックしたあとにまた壁に戻ってくることはないですが、強制的に横向きの動きを入れることで壁を登れるようにしています。
以下のように動かすことができれば成功です。
全てのコード
これで全てのコードが完成です。コードは以下からも確認できます。これをベースに障害物を作るなどして、自分だけの難しいプラットフォームゲームを作ってください。