2018年2月10日土曜日

Scratchでプログラミング その8 ネコがジャンプ

Scratchの使い方解説です、今回の難易度はEasy。
入門レベルです。
記事をまとめたページはこちら。

アクションゲームなどでキャラクター操作ではジャンプは欠かせないですよね。
今回はネコにジャンプさせてみようと思います。

0.目次


  1. 矢印キーでの操作を参考にする
  2. 重力を意識する
  3. 現実世界のシミュレーション

1.矢印キーでの操作を参考にする

基本的な考え方は前回の矢印キーで左右に動くネコの応用です。
前回は矢印キーを押すと、左右に移動するという動きを参考に
スペースキーを押すと、上下に移動するという動きにします。

これは前回の移動するときのコマンドです。



同じようにするとこんな感じでしょうか。
調べるの「スペースキーが押されたとき」動きの「y座標を10ずつ変える」ようにしました。


おわかりかなと思いますが、このまま動かすとだんだん上へと浮いていきます(笑


今度は動きの「y座標を-10ずつ変える」を追加し、それぞれの動きを
制御の「10回繰り返す」で囲みました。


これで進んだ分だけ戻ってきます。
矢印キーでの移動もあわせると、こんな感じでジャンプっぽく見えます。



ただ、まだジャンプっぽさがないんですよね・・・?
ジャンプというよりはフワフワしているように見えませんか?


2.重力を意識する

実際にものを上へ投げたとき、ものは放物線を描きます。
そのときのものの動く早さは、最初は上へ勢い良く進んでいきます。
そのあと一番上ではスピードが0になって、そのあと反対の地面方向へと動き出します。
地面に戻ってくるときにはスピードが速くなっています。

つまり、

  • 最初はスピードが速い
  • 途中で遅くなる。
  • 戻ってきたときも早い

を意識します。


この例では制御の「10回繰り返す」制御の「5回繰り返す」を2回呼び出すように変更しました。
そして、1回目の制御の「5回繰り返す」では、y座標の移動量を大きくするために数字を大きくします。
2回目は逆にy座標の移動量を小さくしています。

どうでしょう、さきほどよりもピョンピョン感が出ていると思いませんか?
実際の重力の計算式にあてはめると、よりリアルな世界の動きになりますが、
今回は簡略的なものを使用しています。

3.現実世界のシミュレーション

このプログラムでは重力の影響をザックリ、それっぽく見えればOK!
という前提で数字を調整しています。
もし、ここの計算をもっと細かくしていけば、簡易的なシミュレーションが出来るようになります。
数学や物理の問題を、視覚的に確認できるってことですね。

たとえば
 時速7kmで走る人が3km進むのと、
 時速4kmで歩く人が2km進むのでは、どちらがゴールに早く到着するか?
のような算数の問題をプログラムで表現すれば、

視覚的に答えを確認できるようになります。