目次:
ビデオ: スーパーマリオを作ってみた 第18回「右の壁との当たり判定」【プログラミング実況】 2024
衝突はほとんどのビデオゲームの中心にあります。 Pacmanがピンクの幽霊にぶつかるか、プラットフォーム上にマリオが飛び込むか、またはMinecraftで新しいツールを拾うキャラクターがいるかどうかにかかわらず、ゲームデザイナーは各衝突が発生したときに何が起こるかを決定します。
あなたのFlappy Batゲームではどのような衝突が検出される必要がありますか?バットはパイプに触れるのですか?バットは地面に触れるのですか?いずれかの衝突が発生した場合、何が起こるはずですか?ゲームは終了する必要があります。
グラウンドスプライトとの衝突を検出する
-
グラウンドスプライトをクリックし、[スクリプト]タブをクリックします。
-
次のブロックをスクリプト領域にドラッグし、TOUCHINGブロックで Player を選択します。
-
緑色のフラグボタンをクリックします。
プレイヤーが地面に浮かぶと、衝突するとすぐにゲームを終了する必要があります。
<!通常、FOREVERブロック内にIF THENブロックを置くので、プログラムは条件が真か偽かをチェックし、それに応じて行動しますXboxまたはPlayStationを起動する前に宿題をしてください)。あなたのプログラムは、グリーンフラグボタンが押された瞬間からPlayer SpriteがGroundスプライトに接触しているかどうかをチェックして、衝突によってSTOP ALLブロックがゲームを終了させるまで続けます。
<! - 3 - >
Pipeスプライトに同じコードが必要なので、コードブロックをコピーすることで時間を節約できます。ブロックを地上からパイプにコピー
上のブロック(緑色のFLAG CLICKED)をクリックし、ブロックをスクリプトエリアからステージの下にあるパイプスプライトのアイコンに直接ドラッグします。
マウス/トラックパッドボタンを離すと、元のコードが[スクリプト]タブの所定の位置にスナップされて表示されます。ステージ下のPipeスプライトアイコンをクリックすると、そこにコードがコピーされているはずです。
新しいブロックが前のコードと重なっている場合は、上のブロックをクリックして右にドラッグするか、他のコードの下にドラッグします。
上のブロックをドラッグすると、接続されているすべてのブロックが移動します。中央のブロックをドラッグすると、その下にスナップされたブロックだけが接続されたままになります。
「グリーンフラグ」ボタンをクリックすると、プレーヤのスプライトがパイプスプライトまたはグラウンドスプライトに触れたときにゲームが終了することがわかります。