小型の隕石を追加。大型、小型隕石ともに回転しながら迫ってくるように設定。粉砕した隕石の個数を表示。画面に表示されていないが制限時間(30秒)を設定。
制限時間に達するか、隕石に衝突したら「Game Over」。
アプリ実行のビデオ:
スクリーンのデザイン:
左上端の数字 0 は、粉砕した隕石の数を表示するもの。
ブロック・コード:
追加した部分のみ。
小型隕石の追加:大型隕石と同様に設定したが、起点をずらし、また下に移動するスピードは若干遅くした。画像は同じものを使用し、サイズのみ変更。
1. 経過時間と制限時間を格納する変数timePassedとtimeLimitを設定。
「Start」ボタンをタップするとcountingTimeClockが動き出す。timeLimitまで来ると関数gameIsOverが実行される。
関数gameIsOverは、ClockおよびaccelerometerSensorを無効にする。
2. 粉砕した隕石の個数を格納する変数hitCountを設定
Canvasの上には、imageSpriteとBall(sprite)しか配置できない。要するに画像のみ。隕石を粉砕した回数も画像で作成し、30回までの画像をリスト形式で変数scoreImagesListに格納。粉砕回数=同リストのindex値、で画像を指定して左上端のimageSpriteに表示。
(なお、scoreImagesListとあるが、当初、粉砕回数をscoreとしていた名残り)
Ballは、宇宙船より発射する弾丸で、隕石に当たれば、hitCountが1ずつ増加していく。
1Trans.png, 2Trans.png, 3Trans.png, 4Trans.png, 5Transpng. . . . の画像は以下の通り。
・・・・・・・
3. 大型(meteorite1)小型(meorite2)を回転させるブロック:
以下4つの画像を順番に表示し回転しているように見せている。変数animationFrames1またはanimationFrames2に、反復して1〜4の数字が割り当てられ、各画像ファイル名の中にある数字となり、画像が順番に表示される。
meteo1.png meteo2.png meteo3.png meteo4.png
4. 「Start」をタップすると、変数の初期化、ならびに無効になっていた背景を動かすmovaBGClock、隕石を動かすmeteorite1Clock/meteorite2Clock、宇宙船を左右に動かすAccelerometerSensor1、隕石を回転させるmeteorite1RotationClock/meteorite2RotationClock、時間を刻むcountingClockをそれぞれ有効にし、作動させる。
5. 「Game Over」ボタンをタップした時の動作:
隕石を粉砕した回数を格納する変数hitCountを0に初期化。その回数を表示するscoresImageSpriteに「0Trans.png」を割り当てて、0を表示させる。
*******************************************************
前回までのブログ:
MIT App Inventor 2で遊ぶ (Space Travel 1)
※コメント投稿者のブログIDはブログ作成者のみに通知されます