Scratchでアクションゲーム制作をしてみる その3「ジャンプ」2回目。

Scratchでアクションゲーム制作をしてみる その3「ジャンプ」2回目。

今日は「ジャンプ」の2回目。前回問題になっていた、以下2点。

・重力弱すぎ問題

・ブロック引っかかり問題

以上2点を解消していきます。

■さくっと重力弱すぎ問題を解決する

いつも通りいきます。

ポイントもいくらかありますが、まず「重力弱すぎ問題」は即完了できます。

数値をいじるだけ。

・ ジャンプ落下y座標がー2 → これを-4へ

(数値が大きければ同じ時間で動かす量が多くなる=落下速度が速くなる)

・ ジャンプ力も低すぎたのでついでにいじる 12 → 24へ

(ジャンプ1回で素早く上昇し素早く落ちるようになった)

 

これで終了。これで重力が強すぎたら、今度は少し数値を減らしたりしながら、調整していけばいいのです。

「〇〇すぎ」という問題は大抵、数値の問題です。

■ブロック引っ掛かり問題は「当たり判定」をいじる

次の「ブロック引っかかり問題」は
「当たり判定を主人公とは別に作成」して対応します。

弾幕シューティングゲームなんかと同じですね。「キャラクターの絵そのものが当たり判定ではなく、もっと小さな点が当たり判定になっている」仕組みです。

キャラクターの四隅に「点」を作るパターンもあるんですが、今回は判りやすく、シンプルに1個の点で作成していきます。

赤い点を一個作って、

 

これは「点」のプログラム。「主人公のネコ」に追従するように設定。

常に大体股下(y座標をキャラクター中心から-48(主人公のサイズ半分))に設定。

それから「ブロックにぶつかったフラグ変数」を別に作成し、「この赤い点と灰色の足場が触れているかどうか」の判定をゲーム中行い続けます。

常にこんな感じになります。謎のオプション。

 

次は、「点によって操作された」「ブロックにぶつかったフラグ」を、使うアルゴリズムをネコに組み込みます。

 

「ブロックにキャラクターが触れたなら」ではなく「ブロックにぶつかったフラグが1なら=赤い点と灰色ブロックに触れたなら」に変更。

これにより、「ネコの絵がブロックに触れた時、止まる」ではなく「点がブロックに触れた時、止まる」になるので、ブロックとキャラクターの引っ掛かりが無くなります。

 

全体を通すとこんな感じに。重力の変更にともなって、数値が調整されている事と、
当たり判定の変更にともなって、前半の分岐ブロックが変更されているのに注目。
あと加速度も調整しました。

 

 

最後に灰色ブロックの高さも調整し、「自由に動かせる」ようにまでなりました。

 

ゲームはこちら。FLASH入ってると動かせます。改造もしていいです。

改造したい方、中身見たい方はこちらをクリック