LoginSignup
1
0

More than 3 years have passed since last update.

scratch変数クエスト★2 ジャンプをクールにつくろう

Last updated at Posted at 2021-02-01

この記事でできること

  • 自分で考えてジャンプ機能をつくることができます。
  • 擬似的な重力の表現ができます。

a01.gif

つくりかた


クエスト①

  • プレイヤーが落ちるように見えるスクリプトをつくりましょう。

仕様

  • スタートしたときにプレイヤーは空中にいる(x座標とy座標を指定する)
  • プレイヤーは、y座標に-10ずつ変える

動作確認

a02.gif

答え合わせ

a04.png

クエスト②に向けて

  • ただ、この状態だとy座標の下へ向かって、一定の速度で「移動」しているだけなので、「落ちている」と演出するには少し物足りなく感じられます。

クエスト②

  • 変数を使って、プレイヤーが落ちるように見えるスクリプトをつくりましょう。

仕様

  • 「重力」という変数をつくる
  • 変数「重力」の初期値は0
  • 変数「重力」は-1ずつ減っていく
  • プレイヤーは、y座標に変数「重力」ずつ変える

動作確認

a03.gif

答え合わせ

a05.png

なぜうごくのか

  • 変数「重力」が-1ずつ変わることによって、変数「重力」は、-1 , -2 , -3 , -4 とマイナスの値が大きくなります。
  • それによって、プレイヤーの「y座標が-1ずつ変わる」「-2ずつ変わる」「-3ずつ変わる」とマイナスの値が大きくなることによって、「下へ向かって速く動く」 = 「プレイヤーがあたかも落ちている」ように見えるわけです。

クエスト③

  • 地面に触れたら、プレイヤーは地面で止まるようにしましょう。

仕様

  • 背景に地面を描く(単色)
  • プレイヤーが落下中(y座標で下へ移動中)に、下記2点を実装する
    • 「もし地面の色に触れたら」「変数の重力を0にする」
    • 「もし地面の色に触れていなければ」「変数の重力を-1にする」

動作確認(正解)

a08.gif

よくある間違いの動作

a06.gif

よくある間違いのスクリプト

よくある間違い.png

なぜ間違えるのか

  • 地面に触れたときに変数「重力」が0になっても、結局は「ずっと」の中で、変数「重力」が-1ずつ変わることになります。(「ずっと」の中をよく見てみよう)
  • そのため、毒の沼のように沈んでしまうように見えるわけです。
  • 逆に、「水」の表現、「沼」の表現として使うこともできます。
  • ただし、今回は「地面」としての表現なので、上記スクリプトは間違いとしています。

答え合わせ

a07.png

なぜうごくのか

  • プレイヤーは「ずっと」「y座標が変数「重力」ずつ変える」状態です。
  • そのため、「地面に触れているかどうか」を「もし〜でなければ」を使います。
  • もし「地面の色に触れていたら、変数「重力」は0にします。
  • でなければ、変数「重力」は-1ずつ変えます。
  • 変数「重力」の変数を使い始めて、なぜプレイヤーが落ちているのかわからなくなったら、クエスト②をもう一度やってみましょう。

クエスト④

  • 地面にいるときに、プレイヤーをジャンプできるようにしましょう。

仕様

  • プレイヤーが地面にいるときに、「スペースキーがおされたら」「変数「重力」を20」にする

動作確認

a09.gif

答え合わせ

a10.png

なぜうごくのか

  • スペースキーがおされたときに、変数「重力」を20にしたことにより、プレイヤーは「y座標を20ずつ変える」ところから、y座標の移動を始めます。
  • 「20」はプラスの値のため、プレイヤーのy座標は上へと移動していきます。これがジャンプの表現となるわけです。
  • 変数「重力」は-1ずつ変えているため、プレイヤーのy座標は19 , 18 , 17 と、-1ずつ減っていきます。
  • そのため、プレイヤーのy座標に設定している変数「重力」はいずれ0になり、そこがプレイヤーのジャンプの最高地点となります。
  • 以降は、変数「重力」は-1ずつ減っていくため、プレイヤーのy座標は0, -1 , -2 , -3 と、-1ずつ減っていきます。
    • 変数「重力」が-1ずつ減ることによって、プレイヤーのy座標が下へ移動することについては、クエスト②を見直してみましょう。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0