スクラッチコーチキャンプ ゲームクリエイターに、オレはなる!そんなキミを応援(子供も大人も)
  • ALL
  • はじめての方へ
  • スクラッチゲームの作り方

    スクラッチでマリオのゲームを作る特大レッスン#15 バグるパタパタ②

    スクラッチでマリオのゲームを作る特大レッスン#15 バグるパタパタ②
    この記事は スクラッチコーチで掲載されているオリジナル記事 のバックアップです。
    スターター作品
    なし
    今回の完成サンプル
    なし

    前回に続いてパタパタみたいにジャンプして迫りくるカエルを作っていきます。

    完成サンプルはこちら↓

    ブロックに当たったらジャンプを中止する

    現在、ブロックに横から当たると次のようになってしまいます。

    めり込んで壁抜けしちゃうのです😅

    直していきましょう!

    ブロック定義「方向転換する」を再利用する

    気合を入れましたがサクッと直ります。

    テストする

    反対方向に進むことでブロックにめり込むバグが修正されました。ホッ。

    壁にあたったら反対方向に進む

    今度は壁です。

    壁の寸前にカエルがスポーンするように調整しておくとテストが楽です。

    僕の環境ではシーン1の右から400くらい。

    現状だとこうなります↓

    ブロック定義「方向転換する」を改修する

    ジャンプ中にぶつかるとバグるので、ジャンプ中に処理を追加します。そのため滞空時間を判定条件に使います。

    逆方向に進む

    ジャンプ中に壁にあたったら、反対方向に進むようにブロックを追加します。

    またマジックナンバーが増えてしまいました……。この5はどのくらい反対方向に進めるかを表しています。みんなのゲームに合わせて微調整してください。

    > 反対方向に進むには「0ー進行方向」にしなくてもいいの?……直前で進行方向を逆向きにしているので、ここではそのままで大丈夫です。

    テストする

    プイッと反対向きに進みましたね。これで壁も良さそうです。

    向きを補正する

    ちょっといじわるなテストをしてみました。(テスト用にカエルのジャンプ間隔をかなり早い0.1にしてあります)

    1回目の壁は意図したとおりですが、2回目以降も壁に当たり続けると、カエルの向きがおかしくなってきます。これは好ましくないですね。直しましょう!

    ブロック定義「向きを補正する」を作る

    条件式を追加する

    次のような条件を作ってください。

    ちょっと不思議ですね。

    向きを補正する

    条件式の中で向きを補正する処理を書きます。カンタンです。

    次のような計算になっています。

    • (進行方向が−1なのに、向きが90度だから)本来の向きである「ー90度」に向ける
    • (進行方向が1なのに、向きがー90度だから)本来の向きである「90度」に向ける

    反転させてるだけですね。

    テストする

    まだまだ改善の余地はありそうですが、ひとまず十分なクオリティだと思います。

    まとめ

    これでパタパタっぽいカエルは完成!新しい動きのある敵モブを追加することに成功しました😀

    このコス(Frog)にはジャンプ中のコスもあるのでアニメーションを加えてみても面白いかもしれないですね。でも今度は新しい攻撃パターンかボスキャラみたいなのにも挑戦したいところ。やはりクッパかな。

    ところで次回はバグ修正回です。ありますねぇ、まだまだたんまりバグが……😫

    この記事への質問やコメントをどうぞ

    ただいま実験的に質問を受け付けています。

    コメントは受け付けていません。

    スパム防止のため、 質問をするにはログインが必要 です。ログインはスクラッチのアカウントがあれば誰でもできます。

    ブクマよろしくお願いします!という口コミを寄せてくれた方 ブクマよろしくお願いします!
    どんどん追記・更新していくので、ブックマークやシェアよろしくお願いします!