プログラムの 中身 を 詳 しくみてみましょう
ビームを 撃 って 敵 を 倒 すゲームのスクリプトについてスプライトごとに 解説 します。
自機
主な 動 き
- キーボードの左(←)キーと、右(→)キーで、左右に 移動 する。
に当たったら 元気 を1 減 らし、音を鳴らして 点滅 する。
に当たって 元気 が1になったら コスチュームを
(ダメージ)にし、
へ 瀕死 を送る。
に当たって 元気 が0になったら コスチュームを
にし、
(ステージ)と
へgame overを送る。
から 回復 が送られてきたら コスチュームを
( 正常 )にする。
「Start」を受け取ったとき
-
説明
-
Startを受け取ったとき、 敵 の数が 敵 の列数 × 敵 の行数 に 達 する のを( 敵 の 配置 が 完了 するのを)待ってから、 自機 を 操作 する 処理 を開始します。
右向き 矢印 (→)キーが 押 されたら右へ、左向き 矢印 (←)キーが 押 されたら左へ 移動 します。
敵 ビームに当たってしまった場合は 元気 が1つ 減 ります。
必要な 処理
- 1. 変数 の 初期化
- 2. 左右 矢印 キー(←→)が 押 された時の左右への 移動
- 3. 敵 ビームに 触 れてしまった時の 処理
コードの 詳細
-
敵 の数 が 敵 の列数× 敵 の行数 に 達 する ( 敵 の 配置 が 完了 する)まで待ちます。
敵 の 配置 が 完了 したらAの 処理 をくり返します。
- A :
横に 動 かすを実行します。
敵 ビームに 触 れた時に、 無敵状態 でなかったら( 無敵状態 =0なら) 以下 のBの 処理 をします。
( 敵 ビームに 触 れても、 無敵状態 ( 無敵状態 =0 以外 )であったら何もしません。) - B :
元気 を1 減 らします。
もし 元気 が0になってしまったら game overを送り、スクリプトを止めます。
無敵状態 ( 無敵状態 =1)にし、 敵 ビームに当たってしまってから一定時間は、 さらに 敵 ビームに当たってしまっても 元気 が 減 らないようにします。
攻撃 を受けたの音を鳴らします。
攻撃 を受けたを送ります。
敵 ビームに当たってしまった時の 処理 をこのループ内でおこなうと、 その間は左右のキーで 自機 を 動 かすことができなくなるため、メッセージを送った先でおこなうようにしています。 ( 敵 ビームに当たってしまった時の 処理 と左右のキーが 押 された時の 処理 が 並行 しておこなわれるようにします。)
もし 元気 が1になってしまったら 瀕死 を送り、コスチュームをダメージにします。
初期化
-
説明
-
各変数 を 初期化 し、 初期状態 にして 表示 します。
コードの 詳細
-
コスチュームを 正常 にし、 ちょうどよい大きさにするために大きさを18%にしています。
(コスチュームを 最初 から小さくしておけば大きさを 変更 しなくても大丈夫です)
右 端 を210、左 端 を-210にします。これは左右に 移動 できる 範囲 を 設定 しています。
x 座標 を左 端 (-210)、 y 座標 を-150にします。
元気 を2にします。 ( 敵 の 弾 に当たると1ずつ 減 り、ハートを取ると1ずつ 増 えます。0になるとゲームオーバーとなります。)
無敵状態 を0にします。
動 く速さを6にします。(左右の 矢印 キーを 押 すと6ずつ 移動 します。)
表示 します。
横に 動 かす
-
説明
-
左右の 矢印 キーで 自機 を横に 動 かすための 処理 です。
コードの 詳細
-
右向き 矢印 キーが 押 されていたら x 座標 を 動 く速さずつ 変 えます。(右に 動 く速さずつ 動 かします)
ただし、 移動後 に右 端 を 超 えてしまう 位置 にいる場合はx 座標 を 右 端 にします。
左向き 矢印 キーが 押 されていたら x 座標 を- 動 く速さずつ 変 えます。(左に 動 く速さずつ 動 かします)
ただし、 移動後 に左 端 を 超 えてしまう 位置 にいる場合はx 座標 を 左 端 にします。
「攻撃 を受けた」を受け取ったとき
-
説明
-
敵 ビームに当たってしまった時に実行します。
自機 を 点滅 させ、0.5秒待った後に 無敵状態 を 解除 します。
コードの 詳細
-
隠 して0.1秒待つ、 表示 して0.1秒待つをくり返して 点滅 させます。
0.5秒待った後に 無敵状態 を0にして 無敵状態 を 解除 します。
GAME OVERを受け取ったとき
-
説明
-
敵 ビームに当たり、 元気 が0になってしまった時に実行します。
自機 が 爆発 しているように見せます。
コードの 詳細
-
念 のため 元気 を0にします。
コスチュームの 爆発 2と 爆発 1を0.3秒ごとに 交互 に 表示 し続けます。
回復 を受け取ったとき
- ハートをキャッチするとハートから 回復 が送られてきます。
コスチュームを 正常 にします。
自機 のビーム
主な 動 き
- スペースキーが 押 されたら 発射 する( 自機 がいる 位置 から上に向かって 移動 する)。
や
から 撃墜 が送られてきたら 隠 す( 非表示 にする)。
がクリックされたとき
- 非表示 にし、他のスプライトと重なった 際 に後ろに 表示 されるように30 層 下げます。
(他のどのスプライトよりも下の 層 にあればよいので必ずしも30 層 である 必要 はありません)
スペースキーが 押 されたとき
-
説明
-
ビームを 発射 します。
自機 と同じ 座標 から 表示 し、上の 端 に着くまで上方向に10ずつ進みます。
( 敵 や 敵 のビームに当たったら 非表示 にしますが、その 処理 は 撃墜 を受け取ったときのほうで書きます)
コードの 詳細
-
元気 が0の場合は何もせずにスクリプトを止めます。
x 座標 、 y 座標 を 自機 と同じ 座標 にします。
非表示 から 表示 へ 変更 します。
zoopの音を鳴らします。
端 に 触 れるまでy 座標 を10ずつ 変 える 処理 をくり返し、上に向かって動いていくようにします。
端 に 触 れたら 隠 します。
以下 のコードはどちらも、同じ 動 きになります。
撃墜 を受け取ったとき
- 自機 のビームが 敵 に当たった時にこのメッセージが送られてきます。
隠 してから、このスプライトの他のスクリプトを止めます。
( 自機 のビームが 敵 もしくは 敵 のビームに当たると 撃墜 が送られてきます)
敵
主な 動 き
- ゲーム開始時に 敵 の列数 × 敵 の行数(10×5)のクローンを作って 並 べる。
すべてのクローンを 並 べ終わったら 配置完了 を送る。 - それぞれのクローンがランダムに 敵 ビーム
を 発射 する。
- 配置 完了直後 は 移動 せず、6体以上 倒 されたらそれぞれが横方向へ 動 き 始 める。
左右のどちらに向かって 動 き出すのかはクローンごとにランダムに決定する。
端 に着いたらはね返る。 - 自機 のビームに当たったら音を鳴らし、 コスチュームを
ダメージにする。
敵 の数を1 減 らし、スコアを1 増 やす。
0.5秒たったらこのクローンを 削除 する。 - 自機 のビームに当たったら 自機 のビームへ 撃墜 を送る。
- 画面上 のすべてのクローンがすべてうち落とされ 敵 の数が0になったら、 自分自身に 配置 開始を送り、 再度 敵 の列数× 敵 の行数(10×4)のクローンを作って 並 べる。
がクリックされたとき
-
説明
-
各変数 を 初期化 し、 配置 開始を送ります。
コードの 詳細
-
回転方法 を回転しないにします。
ブロックで指定せずにスプライトのinfo内の回転の 種類 を回転しない
にしても同じ 効果 があります。
大きさを40%にして 非表示 にします。
横の 間隔 ( 各 クローンのx 座標 の 間隔 )、 縦 の 間隔 ( 各 クローンのy 座標 の 間隔 )をそれぞれ30にします。
敵 の行数を5行、 敵 の列数を10列にします。
上端 の行のy 座標 を110にします。
横の 間隔 と 敵 の列数から 右 端 の列のx 座標 を計算します。
左 端 の列のx 座標 を- 右 端 の列のx 座標 にします。
クローン?をnoにします。
「Start」を受け取ったとき
- 配置開始を送ります。
配置 開始を受け取ったとき
-
説明
-
50個のクローンを作り、横に10列、 縦 に5行で 並 べます。
まず左上から10個のクローンを作り、横10列に 配置 します。
それを5行分くり返します。
配置 が終わったら 配置完了 を送ります。
コードの 詳細
-
配置 開始を クローンが受け取った場合はそのクローンを 削除 します。
クローンでない場合のみ 以下 の 処理 を実行します。
画面 に 表示 されている 敵 の数を表す 敵 の数 を 一旦 0にします。
(左 端 の列のx 座標 , 上端 の行のy 座標 )(左上)に自分自身のクローンを作り、 敵 の数を1 増 やします。
x 座標 を 横の 間隔 だけ 増 やします。(1列分、右にずれます)
これを 敵 の列数(10列)分 並 べるまでくり返します。
-
これで1行分の 配置 が 完了 です。
完了 したらy 座標 を 縦 の 間隔 だけ 減 らします。(1行分、下にずれます)
x 座標 を 左 端 の列のx 座標 にします。 (左 端 の列に 移動 します)
同じように 敵 の列数分 並 べて2行目を 配置 します。
これを 敵 の行数(5行)分 並 べるまでくり返します。
-
すべての 配置 が 完了 したら 配置完了 を送ります。
配置完了 を受け取ったとき
-
説明
-
敵 がすべて 倒 されたら 敵 を 再度 配置 します。
コードの 詳細
-
配置完了 をクローンが受け取った場合は何もせずにこのスクリプトを止めます。
(そうしないと存在しているクローンの数だけ 以下 の 処理 が実行されてしまいます。)
敵 の数が0 以下 になるまで待ちます。
(なんらかの理由で0 未満 になってしまった場合に 備 えて 念 のため0 未満 も 判定条件 に 加 えています)
敵 の数が0 以下 になったらスプライトの他のスクリプトを止めます。
1秒待ってからスコア を5 増 やして 配置 開始を送ります。
クローンされたとき
3つの 処理 を 並行 で開始します。
-
説明
-
自機 のビームに当たった時の 処理 です。
コードの 詳細
-
クローン? をyesにして自身がクローンであることを 判別 できるようにします。
コスチュームを通常にして 表示 します。
以下 のAの 処理 をずっとくり返します。
- A :
自機 のビームに 触 れた ら 以下 のBの 処理 をします。
- B :
撃墜 を送ります。 ( 自機 のビームが受け取り、 非表示 になります。)
popの音を鳴らします。
コスチュームを ダメージにします。
0.5秒待ちます。
敵 の数を1 減 らします。
スコアを1 増 やします。
倒 した 敵 の数を1 増 やします。
このクローンを 削除 します。
-
説明
-
ランダムに 敵 ビームを 発射 します。
各 クローンで 並行 して実行されます。
コードの 詳細
-
2秒待ってからAの 処理 をくり返すことで 敵 ビームを 発射 します。
- A :
1秒~10秒の間 待機 します。( 乱数 を使って決定します)
1から10までの 乱数 を 発生させ1から4だった場合にビームを 発射 します。( 発射 する 確率 は40%)
ビーム 発射処理 を開始したら全クローンで 共用 する 攻撃中 を1にし、1の間は他のクローンはビームを 発射 しないようにします。
(他のどのクローンも 攻撃中 でない場合のみビームを 発射 します。)
攻撃中 は 敵 ビームの クローンされたときの中で0に 戻 します。
敵 ビームの 発射 位置 となる 敵 X、 敵 Yを 発射 するクローンの x 座標 、y 座標 にします。
敵 X、 敵 Yは 「 敵 ビーム」のスプライトでも使うため、すべてのスプライト用としています。
敵 ビームのクローンを作ります。 - <補足>
自機 のビームの時には x 座標 ( 自機 )、 y 座標 ( 自機 )を使ってビームの 発射 位置 を指定していますが、 自機 はクローンを作らないためその 方法 が使えました。
敵 ビームの時に x 座標 ( 敵 )、 y 座標 ( 敵 )を使うと、 発射 した 敵 の 座標 ではなく、クローン元となった 敵 の 座標 から 発射 されてしまいます。
そのため 発射 したクローンの 座標 を 敵 X、 敵 Yに代入して 敵 ビームに渡しています。
複数 のクローンが同時にビームを 発射 できないようにしている理由は2つあります。 - 理由1 :
敵 X、 敵 Y は全体で1つのものを 各 クローンで使用するため、同時に使われないようにしています。
複数 のクローンが同時に使用してしまうと、 発射 されるべき場所から 発射 されない 可能性 があります。 - 理由2 :
同時に 発射 できるようにすると 敵 ビームが多すぎてしまう場合があります。
ビームを 発射 する 確率 を下げれば 減 りますが、 そうすると 逆 にまったく 発射 されないこともあり、 敵 ビームの 発射 に 偏 りが出てしまいます。
まんべんなく 発射 されるようにするために 複数 のクローンが同時に 発射 をしないようにしています。
-
説明
-
敵 を6 匹 以上 倒 されるまで待ちます。
( 敵 の数が( 敵 の列数× 敵 の行数-5)より少なくなるまで待ちます。)
敵 が6 匹 以上 倒 されたらそれぞれが横への 移動 を開始するようにします。
左右のどちらの方向へ 移動 を開始するのかは 各 クローンでランダムに決定します。
端 に着いたらはね返ります。
敵 のビーム
向きを180°(下向き)にします。
主な 動 き
- 敵 が 敵 ビームのクローンを作る。 発射 した 敵 (クローン)と同じ 座標 から 表示 し、 下の 端 に 触 れるまで下方向に進める。
自機 のビームに 触 れたら 自機 のビームへ 撃墜 を送り、 このクローンを 削除 する。
がクリックされたとき
- 大きさを20%にして 非表示 にします。
#コスチュームのエディター等であらかじめ小さくしておいても 構 いません。
クローンされたとき( 敵 から 発射 されたとき)
-
説明
-
発射 した 敵 (クローン)と同じ 座標 から 表示 し、下の 端 に 触 れるまで下方向に進めます。
自機 のビームに 触 れたら 撃墜 を送り、このクローンを 削除 します。
コードの 詳細
-
x 座標 、y 座標 を 発射 した 敵 と同じ 座標 にします。
#ここでx 座標 ( 敵 )、 y 座標 ( 敵 )ブロックを使用すると 発射 した 敵 ではなく、 クローン元となった 敵 の 座標 から 発射 されてしまうため、 敵 X、 敵 Yを 使用して 発射 した 敵 の 座標 を受け取っています。
攻撃中 を0に 戻 します。
前に出して 表示 します。
端 に 触 れるまで5歩ずつ 動 かします。(下方向に進めます)
もし 自機 のビームに 触 れたら 撃墜 を送り、 popの音を鳴らし、 コスチュームを 爆発 にします。 そして0.5秒待ってからクローンを 削除 します。
端 に 触 れた場合もクローンを 削除 します。
ハート
主な 動 き
- 一定時間ごとに自分自身のクローンを作り、そのクローンが上から落ちる。
落ちる 際 のx 座標 はランダムに決定する。
元気 の 値 が高くなるほどクローンを作る 間隔 を長くする。 (ハートを出にくくする) ( 正常 )に 触 ったら音を鳴らし、 元気 を1 増 やしてからこのクローンを 削除 する。
( 正常 )に 触 ったら
正常 へ 回復 を送る。
「Start」を受け取ったとき
-
説明
-
Startを受け取ったとき、 各変数 を 初期化 し、60秒後から定期 的 にクローンを作ります。
元気 の 状態 によってハートが 出現 する 間隔 を 変更 します。
( 元気 の 値 が大きいほど 出現 しにくくします。)
コードの 詳細
-
60秒待ってからAの 処理 をずっとくり返します。
- A :
自分自身のクローンを作ります。
もし 元気 が1(2 未満 )なら ハートの 出現間隔 を10秒にします。
元気 が2(3 未満 )なら 出現間隔 を30秒にします。
それ 以外 (3以上)なら 出現間隔 を60秒にします。
ハートの 出現間隔 秒待ってから次のクローンを作ります。
初期化
-
説明
-
各変数 を 初期化 して 初期状態 にします。
クローン?をnoにします。
瀕死 を受け取ったとき
- クローン?がnoの場合 (クローン 以外 が受け取った場合)のみ5秒後にクローンを作ります。
( 敵 ビームに当たってしまい 元気 が 1になったら5秒後にハートを 出現 させます)。
クローンされたとき
-
説明
-
画面 の上の 端 から下の 端 まで進みます。
x 座標 はランダムに決定します。
自機 に 触 れたら 元気 を1つ 増 やし、 回復 を送ります。
( 自機 のコスチュームがダメージだったら 正常 に 戻 します。)
必要な 処理
- 1. 変数 の 初期化
- 2. 上の 端 から下の 端 まで5ずつ 移動
- 3. 自機 に 触 れた時の 処理
コードの 詳細
-
クローン?をyesにして 自身がクローンであることを 判別 できるようにします。
y 座標 を180にします。
x 座標 を-210から210のいずれかにします。
( 乱数 を使ってランダムに決定します)
前に出して 表示 します。
y 座標 が-140より 小さくなるまで 以下 のAの 処理 をくり返します。
- A :
y 座標 を-5ずつ 変 えます。(下方向に 動 かします)
もし 自機 に 触 れたら 以下 のBの 処理 をします。 - B :
popの音を鳴らします。
( 自機 の) 元気 を1 増 やします。
キャッチしたハートを1 増 やします。
回復 を送ります。
このクローンを 削除 します。 -
y 座標 が-140より 小さくなりループを 抜 けたらコスチュームを star3-bにします。
落としたハートを1 増 やします。
0.5秒待ってからクローンを 削除 します。
ステージ
主な 動 き
がクリックされたらプレイ時間を計る タイマーをリセットし、 各変数 を 初期化 する。
- Startを受け取ったとき dance aroundをくり返し 再生 する。
正常 からGAME OVERが送られてきたら GAME OVERの音を鳴らし、 プレイ時間やキャッチしたハートの数、 倒 した 敵 の数などを 画面 に 表示 する。

がクリックされたとき
- プレイ時間を計るタイマーを0にして、 各変数 を 初期化 します。
「Start」を受け取ったとき
- 音量を30%にする。終わるまでdance aroundを流します。
GAME OVERを受け取ったら
- GAME OVER の音を鳴らし、プレイ時間や 倒 した 敵 の数などを 画面 に 表示 した後にステージの他のスクリプトを止めます。
GAME OVER
主な 動 き
から GAME OVERが送られてきたら 画面中央 の前面に 表示 する。

がクリックされたとき
- 非表示 にします。
大きさを50%にします。
x 座標 を0、 y 座標 を0( 画面中央 )にします。
GAME OVERを受け取ったら
- 3秒待ってから前に出して 表示 します。
Start
主な 動 き
がクリックされたらコスチュームをStartにして 表示 する。
- クリックされたら 各 スプライトへStartを送り、 非表示 にする( 各 スプライト Startを受け取ってゲーム開始)。
緑の 旗 がクリックされたとき
-
説明
- ゲームスタートの 準備 をする。
必要な 処理
- 座標 の 初期化
Startの 表示
マウスポインターが上に乗ったとき色を 変 える コードの 詳細
-
x 座標 (横の 表示 位置 )を0、 y 座標 ( 縦 の 表示 位置 )を0にします。
コスチュームをStartにして 表示 します。 (ゲーム終了時は 非表示 になっているため)
マウスポインターがこのスプライトに 触 れているときは色を 変 え、 離 れたら元の色に 戻 します。
このスプライトがクリックされたとき
-
コードの 詳細
-
コード「
緑の 旗 がクリックされたとき」が動作しているので、止めます。
各 スプライトにStartを送りゲームを開始します。