スクラッチプログラミングに挑戦している皆さん、どうも!スクラッチコーチです。
前回に
続いてパタパタみたいにジャンプして
迫りくるカエルを
作っていきます。
完成サンプルはこちら↓
ブロックに当たったらジャンプを中止する
現在、ブロックに
横から
当たると
次のようになってしまいます。
めり
込んで
壁抜けしちゃうのです😅
直していきましょう!
ブロック定義「方向転換する」を再利用する
気合を
入れましたがサクッと
直ります。
テストする
反対方向に
進むことでブロックにめり
込むバグが
修正されました。ホッ。
壁にあたったら反対方向に進む
今度は
壁です。
壁の
寸前にカエルがスポーンするように
調整しておくとテストが
楽です。
僕の
環境ではシーン1の
右から400くらい。
現状だとこうなります↓
ブロック定義「方向転換する」を改修する
ジャンプ
中にぶつかるとバグるので、ジャンプ
中に
処理を
追加します。そのため
滞空時間を
判定条件に
使います。
逆方向に進む
ジャンプ
中に
壁にあたったら、
反対方向に
進むようにブロックを
追加します。
またマジックナンバーが
増えてしまいました……。この5はどのくらい
反対方向に
進めるかを
表しています。みんなのゲームに
合わせて
微調整してください。>
反対方向に
進むには「0ー
進行方向」にしなくてもいいの?……
直前で
進行方向を
逆向きにしているので、ここではそのままで
大丈夫です。
テストする
プイッと
反対向きに
進みましたね。これで
壁も
良さそうです。
向きを補正する
ちょっといじわるなテストをしてみました。(テスト
用にカエルのジャンプ
間隔をかなり
早い0.1にしてあります)
1
回目の
壁は
意図したとおりですが、2
回目以降も
壁に
当たり
続けると、カエルの
向きがおかしくなってきます。これは
好ましくないですね。
直しましょう!
ブロック定義「向きを補正する」を作る
条件式を追加する
次のような
条件を
作ってください。
ちょっと
不思議ですね。
向きを補正する
条件式の
中で
向きを
補正する
処理を
書きます。カンタンです。
次のような
計算になっています。
- (進行方向が-1なのに、向きが90度だから)本来の向きである「ー90度」に向ける
- (進行方向が1なのに、向きがー90度だから)本来の向きである「90度」に向ける
反転させてるだけですね。
テストする
まだまだ
改善の
余地はありそうですが、ひとまず
十分なクオリティだと
思います。
まとめ
これでパタパタっぽいカエルは
完成!
新しい
動きのある
敵モブを
追加することに
成功しました😀このコス(Frog)にはジャンプ
中のコスもあるのでアニメーションを
加えてみても
面白いかもしれないですね。でも
今度は
新しい
攻撃パターンかボスキャラみたいなのにも
挑戦したいところ。やはりクッパかな。ところで
次回はバグ
修正回です。ありますねぇ、まだまだ
たんまりバグが……😫