SCRATCHでスプライトを歩かせたいという場合があると思います。
「動き」のコードブロックを使用することでスプライトを移動させることはすぐにできますが、なるべく自然な歩き方にこだわりたいような場合には工夫が要ります。
今回はスプライトを歩かせる場合に考えられる小技について紹介していきます。
単に移動すればいい場合
例えば右向き矢印キーを一回押したら100移動する、というようなことを実現したいとします。
まず思いつくのが右向き矢印キーが押された場合に「動き」の中の「100歩動かす」を使用する方法です。
実際の動きを見てみます。
右向き矢印キーを押したタイミングで無事に100歩分移動しています。
他にも、「X座標を100ずつ変える」というコードもあるので、こちらも試してみます。
こちらも同様に、右向き矢印キーを押したらX座標が100変わりました。
どちらの方法でも問題なく100歩あるいは100座標づつ動いていますが、0~100の間が瞬間移動しているように動きます。
この0~100の間をもう少し滑らかに動かしたい、という場合には少し工夫が必要になります。
繰り返しを使って滑らかにする
このような瞬間移動を滑らかに移動させるための解決方法として、繰り返しを使用して動かすという方法があります。
例えば100動かしたい場合には「10ずつ動かす」という動作を10回繰り返す方法です。
右向き矢印キーを押した際に、X座標を10ずつ動かすを10回動かすコードは次のようになります。
実際に動かしてみると、先ほどより滑らかに進んでいることがわかります。
一回の右向き矢印キーで移動する距離は100になりますが、あくまで10歩づつの動きになるためです。
さらに細かくしたい場合には1ずつ変える動きを100回繰り返す、という方法をとることで実現できます。
実際に実行した結果がこちらです。
結果を見ると、10ずつ動くを10回繰り返す場合に比べて、1ずつ変えるを100回繰り返す場合は動き自体が非常にゆっくりになってしまいました。
これは繰り返すし実行周期が有限な時間であるため、繰り返し回数が多くなるにつれてその制約が顕著に出てくるためです。
そのため、繰り返しを使用する方法の場合、滑らかさとこ動きの速度はある程度トレードオフになる気がします。
繰り返し回数と一回の変更座標の大きさでちょうど良いところを見つけて設定するのが良いと思います。
歩くアニメーションも欲しい場合
歩く動きを滑らかにするだけではなく、歩くアニメーションも付与したいというこだわりが出てくる場合もあると思います。
そのような場合にはコスチューム変更を繰り返しの中に含めるという方法があります。
例えば今回使用しているCATのスプライトにはデフォルトでコスチューム2が用意されています。
そして、「見た目」のコード群の中に、大変便利な「次のコスチュームにする」というものがありますので、こちらを使用することで、コスチューム1とコスチューム2を次々に切り替えて歩く動作を表現することができます。
次のコスチュームにするを繰り返しの中に含めたコードがこちらになります。
そして実際に動かした結果がこちらです。
これで滑らかに歩きつつ、歩いているようなアニメーションを付加することができました。
歩くアニメーションの速度を調整したい場合は、簡単に実現できる方法としては繰り返しの中に、待ち時間を入れてやることが挙げられます。
例えば0.1秒の待ち時間を入れた場合がこちらになります。
待ち時間を入れたことによって歩くアニメーションが先ほどよりもゆっくりになりました。
ただし、その分移動する速度も待ち時間が無い場合に比べて遅くなるため、このあたりは好みに合わせて調整することになると思います。
まとめ
スプライトを歩かせたい場合には「繰り返し」と「〇座標をずつ変える」と「次のコスチュームに変える」を使い、これらの値をそれぞれうまく調整することで実現することができました。
コメント