スクラッチに挑戦している皆さん、どうも!スクラッチコーチです。
質問テンプレート(素早く3回クリックすると全選択できるのでコピーしよう)
・◯◯ ... 記事のどこまで実装が終わったのかを記入しよう。・□□ ... どんな問題が起きているのか、どういうときに起きるのか、具体的に書こう。
・共有済みURL ... たまに共有してない作品URLを書いてる人がいるけど、共有しないとこちらから確認できないからよろしくね。
前回に続いてパタパタみたいにジャンプして迫りくるカエルを作っていきます。
完成サンプルはこちら↓
ブロックに当たったらジャンプを中止する
現在、ブロックに横から当たると次のようになってしまいます。
めり込んで壁抜けしちゃうのです😅
直していきましょう!
ブロック定義「方向転換する」を再利用する
気合を入れましたがサクッと直ります。
テストする
反対方向に進むことでブロックにめり込むバグが修正されました。ホッ。
壁にあたったら反対方向に進む
今度は壁です。
壁の寸前にカエルがスポーンするように調整しておくとテストが楽です。
僕の環境ではシーン1の右から400くらい。
現状だとこうなります↓
ブロック定義「方向転換する」を改修する
ジャンプ中にぶつかるとバグるので、ジャンプ中に処理を追加します。そのため滞空時間を判定条件に使います。
逆方向に進む
ジャンプ中に壁にあたったら、反対方向に進むようにブロックを追加します。
またマジックナンバーが増えてしまいました……。この5はどのくらい反対方向に進めるかを表しています。みんなのゲームに合わせて微調整してください。
> 反対方向に進むには「0ー進行方向」にしなくてもいいの?……直前で進行方向を逆向きにしているので、ここではそのままで大丈夫です。
テストする
プイッと反対向きに進みましたね。これで壁も良さそうです。
向きを補正する
ちょっといじわるなテストをしてみました。(テスト用にカエルのジャンプ間隔をかなり早い0.1にしてあります)
1回目の壁は意図したとおりですが、2回目以降も壁に当たり続けると、カエルの向きがおかしくなってきます。これは好ましくないですね。直しましょう!
ブロック定義「向きを補正する」を作る
条件式を追加する
次のような条件を作ってください。
ちょっと不思議ですね。
向きを補正する
条件式の中で向きを補正する処理を書きます。カンタンです。
次のような計算になっています。
- (進行方向が−1なのに、向きが90度だから)本来の向きである「ー90度」に向ける
- (進行方向が1なのに、向きがー90度だから)本来の向きである「90度」に向ける
反転させてるだけですね。
テストする
まだまだ改善の余地はありそうですが、ひとまず十分なクオリティだと思います。
まとめ
これでパタパタっぽいカエルは完成!新しい動きのある敵モブを追加することに成功しました😀
このコス(Frog)にはジャンプ中のコスもあるのでアニメーションを加えてみても面白いかもしれないですね。でも今度は新しい攻撃パターンかボスキャラみたいなのにも挑戦したいところ。やはりクッパかな。
ところで次回はバグ修正回です。ありますねぇ、まだまだたんまりバグが……😫
- ① 横スクロールを制覇せよ
- ② ジャンプせよ
- ③ 壁・坂を攻略せよ
- ④ ゴールして次へ
- ⑤ ブロックを壊せ
- ⑥ スタックを回避せよ (バグ修正の回)
- ⑦ コインをゲットせよ
- ⑧ 敵モブを召喚せよ1 (クローン化、スポーン、横移動など)
- ⑨ 敵モブを召喚せよ2 (方向転換や重力)
- ⑩ 敵モブを召喚せよ3 (アニメーション)
- ⑪ バトル開始1 (ダメージを受ける・与える)
- ⑫ バトル開始2 (ダメージのアニメーション、フィードバック)
- ⑬ 敵モブをリスポーンさせる
- ⑭ iPadに対応する
- ⑮ 迫りくるパタパタ (敵モブに新しい動きを追加する手順が分かる)
- ⑯ パタパタのバグ修正 (いまここ)
- ⑰ 壁に埋もれるバグ修正 (バグがバグを呼ぶ、でも諦めない)