前回の ピザを避けてゲームを作ろう のつづきです。
ところで MakeCode ってプログラミング学習プラットフォームということを知ってましたか。
MakeCode Arcade はゲームに特化した環境ですが、その他にも様々なことができます。micro:bit や LEGO MINDSTORMS を操作したり、Minecraft でプログラミングすることもできます。
興味があれば MakeCode で検索してみましょう。
ピザを発生させよう
ピザを発生させます。
スプライト の中の黄色で指定したブロックをドラッグします。
下の方にあるのでスクロールして見つけてください。
似たブロックがありますが 発射体○を横から の方です。間違えないように注意しましょう。
ゲームが更新された時 の中に入れます。
絵を選択します。
ギャラリーでピザの絵を選びます。
ピザの絵は2つあります。絵のキレイな方(解像度の高い方)を選びます。
ピザの絵を入れると、画面左上から右下へ連続してピザが移動します。
ピザの発生間隔は 500 ミリ秒(0.5秒)です。
速度 vx を 0 にします。
横へ移動する速度を 0 にしたため、ピザは真下に移動します。
0 に変更できない人は、入力が全角モードになっていると思います。
数値はすべて半角で入力してください。
ピザを画面いっぱいに降らせよう
ピザを画面幅いっぱいに降らせます。
スプライト の mySpriteの位置をx0y0にする をドラッグします。
ゲームが更新された時 の中に入れます。
mySprite を projectile に変更します。
乱数を使います。
計算 の ランダムな数字を選択0から10まで をドラッグします。
下の方にあるのでスクロールして見つけましょう。
下図を参考に x の所へ入れます。
0 から 160 までに変更します。
これで画面幅いっぱいに広がります。
スプライトの中心点を意識しよう
ここで、シミュレーターでピザの発生をよく見てください。
ピザが急に現れます。
これはスプライトを表示するとき中心点を使っているため起ります。
絵の端からスッと現れる方が自然です。
表示座標を少し上にあげて対応したいと思います。
変数 projectile の y 座標を -15 に変更します。
-15 にした理由は、絵のサイズが 32x32 だからです。
ピザの絵のエディタを開いてみてください。幅と高さが確認できます。
ここからちょっと難しい話をします。
余裕を持って -30 でもいいのでは?
と思う人もいるでしょう。
ピザのスプライトは発射体です。
発射体は画面外へ出たら消滅するという特徴があります。
この特徴のため画面から離して表示しようとすると、そのまま消滅してしまうのです。
ですから、画面に少し表示される座標で発生させなければいけません。
それから、発射体を作るブロックは2つあるので注意してください。
ちなみに、画面外へ出た発射体は自動消滅するという機能はとても気に入ってます。
ゲームで処理が重くなったり、強制終了してしまうことが時々あったりしますよね。
その原因の1つは、発生させたスプライトを削除しないために起ります。
そのようなリスクを減らしてくれる便利な機能なんです。
当たり判定を入れよう
プレイヤーとピザの当たり判定を入れます。
スプライト の中の黄色で指定したブロックをドラッグします。
下の方にあるのでスクロールして見つけてください。
当たり判定のブロックは、連結させずに外に配置します。
ところで、配置するブロックが増えると、空いている場所が狭くなってきますよね。
編集エリアはドラッグ操作で上下左右に動かせます。上手く使いましょう。
Player と Player の当たり判定になっているので、片方を Projectile(発射体)にします。
プレイヤーとピザが当たったとき、ピザを破壊します。
すぐに破壊しないと何度でも当たり判定に引っかかってしまいます。
スプライト の mySpriteを破壊するをドラッグします。
下の方にあるのでスクロールして見つけてください。
mySpriteを破壊するが見つからないとき、表記が英語になっている可能性があります。
次のブロックを選びましょう。
MakeCode Arcade のバージョンアップが行われたとき、日本語化されないこともあるようです。
mySpriteを破壊するを当たり判定の中に入れます。
Projectile を破壊したいので、mySprite を otherSprite に差し替えます。
外に飛び出た mySprite はゴミ箱に捨てましょう。
シミュレーターで確認しましょう。
プレイヤーとピザが重なったとき、ピザが消えれば成功です。
続きます。
次回で完結です。