ジャンプの方法はここで紹介しましたが、横の動きも入れたプログラムです。

お試しとプログラムはここから。
[スペースキー]でジャンプ、[カーソルキー]で左右です。
ぜひ、ここから改良してゲームを作ってみてください。

仕組み

背景とスプライト

まず地面の色がはっきりしている背景を選び、地面と同じ色でスプライトの地形を3つ作成。適当に配置します。

プログラムの概要

メインのプログラムはこんな感じです。メインのループの中で、update_xでペンギンのx方向の更新を、update_yでy方向の更新をしています。ブロックにしているのは、単に見やすくするためです。

yの更新

足が地面に着いているときに、キーが押されていたらジャンプ、押されていなければdyをゼロにして、upて埋まりを解消して地面に立つ。

足が地面に着いていなければ、dyを1減らす。

最後に頭が地面にぶつかったら跳ね返るための処理を入れています。

埋まり防止のupは、ここで紹介したものと同じ。

xの更新

左右の動きには、スケートのように急には止まれないという慣性の効果を入れています。そうすることで、キャラの動きが滑らかになります。

具体的には、dxという横のスピードを表す変数を用意し、ずっとのループでx座標に足しています。

右のカーソルキーが押されると、dxは2となり、スプライトは右に進みます。しかし、dxはループのなかで0.9が掛けられていくので段々と小さくなります。結果、スプライトは徐々に止まることになります。

左の動きについても同様です。