シューティング


プログラムの中身なかみくわしくみてみましょう

ビームをっててきたおすゲームのスクリプトについてスプライトごとに解説かいせつします。

自機じき

主なうご

  • キーボードの左(←)キーと、右(→)キーで、左右に移動いどうする。
  • に当たったら元気げんきを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を送りゲームを開始します。

^