入門レベルです。
記事をまとめたページはこちら。
アクションゲームなどでキャラクター操作ではジャンプは欠かせないですよね。
今回はネコにジャンプさせてみようと思います。
0.目次
- 矢印キーでの操作を参考にする
- 重力を意識する
- 現実世界のシミュレーション
1.矢印キーでの操作を参考にする
基本的な考え方は前回の矢印キーで左右に動くネコの応用です。前回は矢印キーを押すと、左右に移動するという動きを参考に
スペースキーを押すと、上下に移動するという動きにします。
これは前回の移動するときのコマンドです。
同じようにするとこんな感じでしょうか。
調べるの「スペースキーが押されたとき」に動きの「y座標を10ずつ変える」ようにしました。
おわかりかなと思いますが、このまま動かすとだんだん上へと浮いていきます(笑
今度は動きの「y座標を-10ずつ変える」を追加し、それぞれの動きを
制御の「10回繰り返す」で囲みました。
これで進んだ分だけ戻ってきます。
矢印キーでの移動もあわせると、こんな感じでジャンプっぽく見えます。
ただ、まだジャンプっぽさがないんですよね・・・?
ジャンプというよりはフワフワしているように見えませんか?
2.重力を意識する
実際にものを上へ投げたとき、ものは放物線を描きます。そのときのものの動く早さは、最初は上へ勢い良く進んでいきます。
そのあと一番上ではスピードが0になって、そのあと反対の地面方向へと動き出します。
地面に戻ってくるときにはスピードが速くなっています。
つまり、
- 最初はスピードが速い
- 途中で遅くなる。
- 戻ってきたときも早い
を意識します。
この例では制御の「10回繰り返す」を制御の「5回繰り返す」を2回呼び出すように変更しました。
そして、1回目の制御の「5回繰り返す」では、y座標の移動量を大きくするために数字を大きくします。
2回目は逆にy座標の移動量を小さくしています。
どうでしょう、さきほどよりもピョンピョン感が出ていると思いませんか?
実際の重力の計算式にあてはめると、よりリアルな世界の動きになりますが、
今回は簡略的なものを使用しています。
3.現実世界のシミュレーション
このプログラムでは重力の影響をザックリ、それっぽく見えればOK!という前提で数字を調整しています。
もし、ここの計算をもっと細かくしていけば、簡易的なシミュレーションが出来るようになります。
数学や物理の問題を、視覚的に確認できるってことですね。
たとえば
時速7kmで走る人が3km進むのと、
時速4kmで歩く人が2km進むのでは、どちらがゴールに早く到着するか?
のような算数の問題をプログラムで表現すれば、
視覚的に答えを確認できるようになります。