爆弾 ( ばくだん ) ゲーム


プログラムの 中身 ( なかみ ) を 詳 ( くわ ) しくみてみよう

爆弾 ( ばくだん ) ゲームのスクリプトについてスプライトごとに 解説 ( かいせつ ) します。

プレイヤー

主な 動 ( うご ) き

  • 上(↑)、下(↓)、左(←)、右(→)の 矢印 ( やじるし ) キーで 動 ( うご ) かします。
  • スペースキーを 押 ( お ) すと 爆弾 ( ばくだん ) を 置 ( お ) きます。
  • ペンギンや 炎 ( ほのお ) に当たってしまうとGAME OVERとなります。
  • 爆弾 ( ばくだん ) は一度に4つまで 置 ( お ) くことができます。
  • 左折 ( させつ ) や 右折 ( うせつ ) をした 際 ( さい ) には、曲った後の道の中央に 位置 ( いち ) するように 座標 ( ざひょう ) を 微 ( び ) 調整します。

「Start」を受け取ったとき

    • 説明 ( せつめい )
    • 上下左右の 矢印 ( やじるし ) キーでPlayerを 動 ( うご ) かし、スペースキーで 爆弾 ( ばくだん ) を 置 ( お ) きます。

      ペンギンや 炎 ( ほのお ) に 触 ( ふ ) れてしまったらダメージを受けた 演出 ( えんしゅつ ) をし、 GAME OVERを送って終了します。

    •  
    • コードの 詳細 ( しょうさい )
    • 各変数 ( かくへんすう ) の 値 ( あたい ) 、コスチューム、 座標 ( ざひょう ) を 初期化 ( しょきか ) します。

      ペンギンまたは 炎 ( ほのお ) に 触 ( ふ ) れるまでAの 処理 ( しょり ) をくり返します。

    •  
    • A :

      押 ( お ) されたキーによって 対応 ( たいおう ) したスクリプトを実行します。

    •  
    • ペンギンまたは 炎 ( ほのお ) に 触 ( ふ ) れたら 以下 ( いか ) のように ダメージを受けたを実行して終了します

      (ダメージを受けたの中で game overを送ります)。

爆弾 ( ばくだん ) を 置 ( お ) く

    • 説明 ( せつめい )
    • Playerがいる場所に 爆弾 ( ばくだん ) を 置 ( お ) きます。

      ただし、1つ前の 爆弾 ( ばくだん ) を 置 ( お ) いた直後であったり、 最大数(4つ)の 爆弾 ( ばくだん ) をすでに 置 ( お ) いてしまっていたりする場合は 爆弾 ( ばくだん ) を 置 ( お ) きません。

    •  
    • コードの 詳細 ( しょうさい )
    • 爆弾 ( ばくだん ) 使用 不可 ( ふか ) が0( 爆弾 ( ばくだん ) が使用 可能 ( かのう ) )かつ 使用中の 爆弾 ( ばくだん ) 数が4 (同時に使用できる 爆弾 ( ばくだん ) の数)より少ない場合のみAの 処理 ( しょり ) をして 爆弾 ( ばくだん ) を 置 ( お ) きます。

    •  
    • A :

      爆弾 ( ばくだん ) のクローンを作ります。
      使用中の 爆弾 ( ばくだん ) 数を1 増 ( ふ ) やします。
      爆弾 ( ばくだん ) 使用 不可 ( ふか ) を1にします。
      爆弾 ( ばくだん ) 設置 ( せっち ) を送ります。

爆弾 ( ばくだん ) 設置 ( せっち ) を受け取ったとき

  • 1秒待ってから 爆弾 ( ばくだん ) 使用 不可 ( ふか ) を0にします( 爆弾 ( ばくだん ) 使用 不可 ( ふか ) の 状態 ( じょうたい ) を 解除 ( かいじょ ) します)。

ダメージを受けた

    • 説明 ( せつめい )
    • ペンギンまたは 炎 ( ほのお ) に 触 ( ふ ) れてダメージを受けたときの 演出 ( えんしゅつ ) をし、 game overを送ります。

    •  
    • コードの 詳細 ( しょうさい )
    • コスチュームをダメージにします。

      meow( 猫 ( ねこ ) の鳴き声)の音を鳴らします。

      以下 ( いか ) のAの 処理 ( しょり ) を40回くり返します。

    •  
    • A :

      y 座標 ( ざひょう ) を2ずつ 変 ( か ) えます(上方向に2だけ 動 ( うご ) かします)。
      ghostの 効果 ( こうか ) を3ずつ 変 ( か ) えます (少しずつ 薄 ( うす ) くなって消えていくようにします)。

    •  
    • game overを送ります。

右へ 移動 ( いどう )

    • 説明 ( せつめい )
    • 右方向へ 移動 ( いどう ) します。ただし右 側 ( がわ ) に 壁 ( かべ ) がない場合のみ 移動 ( いどう ) します。

    •  
    • コードの 詳細 ( しょうさい )
    • 向きを右方向(90度)にします。

      Playerが 右端 ( みぎはし ) にいなければ(x 座標 ( ざひょう ) < 右端 ( みぎはし ) なら) 横方向を実行して右に2だけ 移動 ( いどう ) します。

      ただしx 座標 ( ざひょう ) = 右端 ( みぎはし ) -1である場合は右に1だけ 移動 ( いどう ) します。

左へ 移動 ( いどう )

    • 説明 ( せつめい )
    • 左方向へ 移動 ( いどう ) します。ただし左 側 ( がわ ) に 壁 ( かべ ) がない場合のみ 移動 ( いどう ) します。

    •  
    • コードの 詳細 ( しょうさい )
    • 向きを左方向(-90度)にします。

      Playerが 左端 ( ひだりはし ) にいなければ(x 座標 ( ざひょう ) > 左端 ( ひだりはし ) なら) 横方向を実行して左に2だけ 移動 ( いどう ) します。

      ただしx 座標 ( ざひょう ) = 左端 ( ひだりはし ) +1である場合は左に1だけ 移動 ( いどう ) します。

上へ 移動 ( いどう )

    • 説明 ( せつめい )
    • 上方向へ 移動 ( いどう ) します。ただし上 側 ( がわ ) に 壁 ( かべ ) がない場合のみ 移動 ( いどう ) します。

    •  
    • コードの 詳細 ( しょうさい )
    • Playerが 上端 ( じょうたん ) にいなければ(y 座標 ( ざひょう ) < 上端 ( じょうたん ) なら) 縦 ( たて ) 方向を実行して上に2だけ 移動 ( いどう ) します。

      ただしy 座標 ( ざひょう ) = 上端 ( じょうたん ) -1である場合は上に1だけ 移動 ( いどう ) します。

下へ 移動 ( いどう )

    • 説明 ( せつめい )
    • 下方向へ 移動 ( いどう ) します。ただし下 側 ( がわ ) に 壁 ( かべ ) がない場合のみ 移動 ( いどう ) します。

    •  
    • コードの 詳細 ( しょうさい )
    • Playerが 下端 ( かたん ) にいなければ(y 座標 ( ざひょう ) < 下端 ( かたん ) なら) 縦 ( たて ) 方向を実行して下に2だけ 移動 ( いどう ) します。

      ただしy 座標 ( ざひょう ) = 下端 ( かたん ) +1である場合は下に1だけ 移動 ( いどう ) します。

横移動 ( よこいどう )

    • 説明 ( せつめい )
    • 横方向の道の中央から上下にそれぞれ一定の 幅 ( はば ) (9)の中に Playerのy 座標 ( ざひょう ) がある場合のみ横の方向へ 移動 ( いどう ) します。

      横の方向へ 移動 ( いどう ) する 際 ( さい ) には、Playerのy 座標 ( ざひょう ) をずらして横方向の道の中央へ合わせます

      (y 座標 ( ざひょう ) が横方向へ 移動 ( いどう ) できる 範囲 ( はんい ) にあるかどうかの 判定 ( はんてい ) と横方向の道の中央へ合わせるために y 座標 ( ざひょう ) をずらす 量 ( りょう ) の計算は道 通過判定 ( つうかはんてい ) でおこないます)。

      移動量 ( いどうりょう ) が+の 値 ( あたい ) であれば右へ、-の 値 ( あたい ) であれば左へ 移動 ( いどう ) します。

    •  
    • コードの 詳細 ( しょうさい )
    • y 座標 ( ざひょう ) に対して 道 通過判定 ( つうかはんてい ) を実行します。

      横方向の道の中心からの y 座標 ( ざひょう ) のズレが通れる 幅 ( はば ) におさまっていない場合は 座標 ( ざひょう ) をずらす 量 ( りょう ) に( 通れる 幅 ( はば ) の半分 (9)+1)が入ってくるので、その場合は次の 処理 ( しょり ) (横への 移動 ( いどう ) )へ進まずにスクリプトを終了します。

      ズレが通れる 幅 ( はば ) におさまっている場合は 以降 ( いこう ) の 処理 ( しょり ) を実行します。

      Playerのy 座標 ( ざひょう ) を 座標 ( ざひょう ) をずらす 量 ( りょう ) だけ 変 ( か ) えて、横方向の道の中央に合わせます。

      x 座標 ( ざひょう ) を 移動量 ( いどうりょう ) の分だけ 変 ( か ) えて横に 移動 ( いどう ) させます。

      x 座標 ( ざひょう ) を渡して 歩く 演出 ( えんしゅつ ) を実行します。

縦移動 ( たていどう )

    • 説明 ( せつめい )
    • 縦 ( たて ) 方向の道の中央から左右にそれぞれ一定の 幅 ( はば ) (9)の中にPlayerのx 座標 ( ざひょう ) がある場合のみ 縦 ( たて ) の方向へ 移動 ( いどう ) します。

      縦 ( たて ) 方向へ 移動 ( いどう ) する 際 ( さい ) には、Playerの x 座標 ( ざひょう ) をずらして 縦 ( たて ) 方向の道の中央へ合わせます

      (x 座標 ( ざひょう ) が 縦 ( たて ) 方向へ 移動 ( いどう ) できる 範囲 ( はんい ) にあるかどうかの 判定 ( はんてい ) と 縦 ( たて ) 方向の道の中央へ合わせるために x 座標 ( ざひょう ) をずらす 量 ( りょう ) の計算は 道 通過判定 ( つうかはんてい ) でおこないます)。

      移動量 ( いどうりょう ) が+の 値 ( あたい ) であれば上へ、-の 値 ( あたい ) であれば下へ 移動 ( いどう ) します。

    •  
    • コードの 詳細 ( しょうさい )
    • x 座標 ( ざひょう ) に対して道 通過判定 ( つうかはんてい ) を実行します。

      縦 ( たて ) 方向の道の中心からのx 座標 ( ざひょう ) のズレが通れる 幅 ( はば ) におさまっていない場合は 座標 ( ざひょう ) をずらす 量 ( りょう ) に( 通れる 幅 ( はば ) の半分(9)+1)が入ってくるので、 その場合は次の 処理 ( しょり ) ( 縦 ( たて ) への 移動 ( いどう ) )へ進まずにスクリプトを終了します。

      ズレが通れる 幅 ( はば ) におさまっている場合は 以降 ( いこう ) の 処理 ( しょり ) を実行します。

      Playerのx 座標 ( ざひょう ) を 座標 ( ざひょう ) をずらす 量 ( りょう ) だけ 変 ( か ) えて、 縦 ( たて ) 方向の道の中央に合わせます。

      y 座標 ( ざひょう ) 移動量 ( いどうりょう ) の分だけ 変 ( か ) えて 縦 ( たて ) に 移動 ( いどう ) させます。

      y 座標 ( ざひょう ) を渡して 歩く 演出 ( えんしゅつ ) を実行します。

道 通過判定 ( つうかはんてい )

    • 説明 ( せつめい )
    • 進行方向の道の中央からのPlayerの 位置 ( いち ) のズレが通れる 幅 ( はば ) の半分(9)の 中にある場合のみ進行方向への 移動可 ( いどうか ) と 判定 ( はんてい ) します。

      また進行方向へ 移動 ( いどう ) する 際 ( さい ) には、 Playerの 位置 ( いち ) をずらして進行方向の道の中央へ合わせます。そのずらす 量 ( りょう ) ( 座標 ( ざひょう ) をずらす 量 ( りょう ) )もこのスクリプト内で計算します。

      進行方向の道の中央からのPlayerの 位置 ( いち ) のズレが大きく、 通過 ( つうか ) できないと 判定 ( はんてい ) した場合は 座標 ( ざひょう ) をずらす 量 ( りょう ) を 通れる 幅 ( はば ) の半分(9)+1としておきます。

    •  
    • コードの 詳細 ( しょうさい )
    • 座標 ( ざひょう ) を 道の中心の 間隔 ( かんかく ) (64)で 割 ( わ ) った 余 ( あま ) りを計算します。

      進行方向の道の中央からのズレの大きさを計算しています。

      割 ( わ ) った 余 ( あま ) りの大きさに応じて 以下 ( いか ) のA、B、Cのいずれかを実行します。

    •  
    • A :

      割 ( わ ) った 余 ( あま ) りが 通れる 幅 ( はば ) の半分(9) 以下 ( いか ) である場合
      (進行方向の道の中央に対するPlayerのプラス方向へのズレが 通れる 幅 ( はば ) の半分(9) 以下 ( いか ) である場合)
      - 割 ( わ ) った 余 ( あま ) りを 座標 ( ざひょう ) をずらす 量 ( りょう ) にします
      ( 座標 ( ざひょう ) をマイナス方向に 割 ( わ ) った 余 ( あま ) り分だけずらします)。

    •  
    • B :

      (道の中心の 間隔 ( かんかく ) (64)- 割 ( わ ) った 余 ( あま ) り)が 通れる 幅 ( はば ) の半分(9) 以下 ( いか ) である場合
      (進行方向の道の中央に対するPlayerのマイナス方向へのズレが 通れる 幅 ( はば ) の半分(9) 以下 ( いか ) である場合)
      (道の中心の 間隔 ( かんかく ) (64)- 割 ( わ ) った 余 ( あま ) り)を 座標 ( ざひょう ) をずらす 量 ( りょう ) にします
      ( 座標 ( ざひょう ) をプラス方向に(道の中心の 間隔 ( かんかく ) (64)- 割 ( わ ) った 余 ( あま ) り)だけずらします)。

    •  
    • C :

      それ以外の場合
      (進行方向の道の中央とPlayerの中心との 距離 ( きょり ) が 通れる 幅 ( はば ) の半分より大きい場合)
      座標 ( ざひょう ) をずらす 量 ( りょう ) を( 通れる 幅 ( はば ) の半分(9)+1)にしておきます
      (こうしておくことで次の 処理 ( しょり ) (横への 移動 ( いどう ) )へ進まずにスクリプトを終了するようにします)。

道 通過判定 ( つうかはんてい ) の 具体的 ( ぐたいてき ) な 例 ( れい )

    • 説明 ( せつめい )
    • Playerのy 座標 ( ざひょう ) =137
      通れる 幅 ( はば ) =18
      通れる 幅 ( はば ) の半分=9
      割 ( わ ) った 余 ( あま ) り=9となります。
      (Playerのy 座標 ( ざひょう ) (137)÷ 道の中心の 間隔 ( かんかく ) (64)=2 余 ( あま ) り 9) 割 ( わ ) った 余 ( あま ) り(9)は 通れる 幅 ( はば ) の半分(9) 以下 ( いか ) です。
      その場合は 座標 ( ざひょう ) をずらす 量 ( りょう ) =- 割 ( わ ) った 余 ( あま ) り=-9にします。
      Playerのy 座標 ( ざひょう ) (137)に 座標 ( ざひょう ) をずらす 量 ( りょう ) (-9)を足すと 128となり、道の中央のy 座標 ( ざひょう ) と同じ 位置 ( いち ) となります。

    • 説明 ( せつめい )
    • Playerのy 座標 ( ざひょう ) =119
      通れる 幅 ( はば ) =18
      通れる 幅 ( はば ) の半分=9
      割 ( わ ) った 余 ( あま ) り=55となります。
      (Playerのy 座標 ( ざひょう ) (119)÷ 道の中心の 間隔 ( かんかく ) (64)=1 余 ( あま ) り 55) (道の中心の 間隔 ( かんかく ) (64)- 割 ( わ ) った 余 ( あま ) り(55))は 通れる 幅 ( はば ) の半分(9) 以下 ( いか ) です。
      その場合は 座標 ( ざひょう ) をずらす 量 ( りょう ) = 道の中心の 間隔 ( かんかく ) (64)- 割 ( わ ) った 余 ( あま ) り(55))=9にします。
      Playerのy 座標 ( ざひょう ) (119)に 座標 ( ざひょう ) をずらす 量 ( りょう ) (9)を足すと128となり、道の中央のy 座標 ( ざひょう ) と同じ 位置 ( いち ) となります。

    • 説明 ( せつめい )
    • Playerのy 座標 ( ざひょう ) =140
      通れる 幅 ( はば ) =18
      通れる 幅 ( はば ) の半分=9
      割 ( わ ) った 余 ( あま ) り=12となります。
      (Playerのy 座標 ( ざひょう ) (140)÷道の中心の 間隔 ( かんかく ) (64)=2 余 ( あま ) り 12) 割 ( わ ) った 余 ( あま ) り(12)は 通れる 幅 ( はば ) の半分(9)より大きいので左に 移動 ( いどう ) することはできません。
      その場合は 座標 ( ざひょう ) をずらす 量 ( りょう ) を 通れる 幅 ( はば ) の半分(9)+1=10にしておきます。

歩く 演出 ( えんしゅつ )

    • 説明 ( せつめい )
    • 進行方向の 座標 ( ざひょう ) が10の倍数の時に コスチュームを 変更 ( へんこう ) することで歩いているように見せます。

    •  
    • コードの 詳細 ( しょうさい )
    • 座標 ( ざひょう ) を10で 割 ( わ ) った 余 ( あま ) りが0である場合、コスチュームの 歩く1と 歩く2を入れ 替 ( か ) えます。

ペンギン

主な 動 ( うご ) き

  • ゲーム開始時に7本ある 縦 ( たて ) の道のうち、 Playerがいる中央の道以外の6本の道に1体ずつ合計6体を 出現 ( しゅつげん ) させます。 それ 以降 ( いこう ) は35個ある 交差点 ( こうさてん ) のいずれかに10秒に1体ずつ 出現 ( しゅつげん ) させます
    (それぞれクローンを作ります)。
  • ペンギンを 出現 ( しゅつげん ) させる 際 ( さい ) には先に 煙 ( けむり ) を 表示 ( ひょうじ ) し、その後にペンギンを 表示 ( ひょうじ ) します。
  • 出現 ( しゅつげん ) した後は上下左右のいずれかに 移動 ( いどう ) を開始し、 交差点 ( こうさてん ) を通るたびに直線(50%)、 右折 ( うせつ ) (25%)、 左折 ( させつ ) (25%)のいずれかを 選択 ( せんたく ) して 移動 ( いどう ) します。
    前方や左右に 壁 ( かべ ) があって進めない場合はそれ以外の道へ進みます。
    もし3方向が 塞 ( ふさ ) がっていたら反転して 逆 ( ぎゃく ) 方向に進むようにします
    (現在の仕組みでは3方向とも 壁 ( かべ ) となることはありませんが、 念 ( ねん ) のためそのような 動 ( うご ) きとしています)。
  • 前方に 爆弾 ( ばくだん ) がある場合は反転して 逆 ( ぎゃく ) 方向に進むようにします。
  • 炎 ( ほのお ) に 触 ( ふ ) れたら 消滅 ( しょうめつ ) し、スコアが1 加算 ( かさん ) されます。

がクリックされたとき

  • 非表示 ( ひひょうじ ) にします。

「Start」を受け取ったとき

  • 下記の説明の開始時に配置と途中で出現を実行させます。

開始時に 配置 ( はいち )

    • 説明 ( せつめい )
    • 7本ある 縦 ( たて ) の道のうちPlayerがいる中央の道以外の6本の道に1体ずつペンギンを 出現 ( しゅつげん ) させます。

      縦 ( たて ) の道にはそれぞれ5つの 交差点 ( こうさてん ) があり、そのうちの1つにランダムで 出現 ( しゅつげん ) させます。

    •  
    • コードの 詳細 ( しょうさい )
    • 垂直 ( すいちょく ) 位置 ( いち ) を0にします。

      水平 位置 ( いち ) を1にします。

      Aの 処理 ( しょり ) を3回くり返して 複数 ( ふくすう ) の 箇所 ( かしょ ) にペンギンを 配置 ( はいち ) します。

    •  
    • A :

      垂直 ( すいちょく ) 位置 ( いち ) を-2から2までのいずれかにして、 クローンをつくるを実行します。
      これは中央の道の一本右 隣 ( となり ) の 縦 ( たて ) の道にある5つの 交差点 ( こうさてん ) のうちのいずれか1ヵ所にペンギンを 出現 ( しゅつげん ) させます。 0.1秒待ちます。
      水平 位置 ( いち ) に-1をかけます。
      垂直 ( すいちょく ) 位置 ( いち ) を-2から2までのいずれかにして、 クローンをつくるを実行します。
      これは中央の道の一本左 隣 ( となり ) の 縦 ( たて ) の道にある5つの 交差点 ( こうさてん ) のうちのいずれか1ヵ所にペンギンを 出現 ( しゅつげん ) させます。 0.1秒待ちます。
      水平 位置 ( いち ) に-1をかけてマイナスからプラスへ 戻 ( もど ) します。
      水平 位置 ( いち ) に1を足して1本外 側 ( がわ ) の道へ 移 ( うつ ) ります。

開始時のループ内でつくられるペンギンの 出現位置 ( しゅつげんいち )

  • 対応 ( たいおう ) する番号のいずれか1ヵ所に 出現 ( しゅつげん ) させます。

途中 ( とちゅう ) で 出現 ( しゅつげん )

    • 説明 ( せつめい )
    • 35個ある 交差点 ( こうさてん ) のいずれかに10秒に1体ずつペンギンを 出現 ( しゅつげん ) させます。

    •  
    • コードの 詳細 ( しょうさい )
    • Aの 処理 ( しょり ) をGAME OVERになるまでくり返します。

    •  
    • A :

      10秒待ちます。
      垂直 ( すいちょく ) 位置 ( いち ) を-2から2までのいずれかにします。
      水平 位置 ( いち ) を-3から3までのいずれかにします。
      クローンをつくるを実行します。

クローンをつくる

    • 説明 ( せつめい )
    • 水平 位置 ( いち ) 、 垂直 ( すいちょく ) 位置 ( いち ) で示す場所に 煙 ( けむり ) を約3 秒 ( びょう ) 表示 ( ひょうじ ) してからペンギンを 出現 ( しゅつげん ) させます。

      水平 位置 ( いち ) 、 垂直 ( すいちょく ) 位置 ( いち ) の 値 ( あたい ) を 煙 ( けむり ) X、 煙 ( けむり ) Yにコピーしてスプライト 煙 ( けむり ) へ渡します。

    •  
    • コードの 詳細 ( しょうさい )
    • 煙 ( けむり ) Xを水平 位置 ( いち ) にします。
      煙 ( けむり ) Yで 垂直 ( すいちょく ) 位置 ( いち ) にします。
      煙 ( けむり ) のクローンを作ります。
      自分自身のクローンを作ります。

クローンされたとき

    • 説明 ( せつめい )
    • 開始時に 配置 ( はいち ) 、 途中 ( とちゅう ) で 出現 ( しゅつげん ) で指定された 水平 位置 ( いち ) 、 垂直 ( すいちょく ) 位置 ( いち ) をもとに 実際 ( じっさい ) の x 座標 ( ざひょう ) 、 y 座標 ( ざひょう ) を 設定 ( せってい ) して 表示 ( ひょうじ ) します。

      表示 ( ひょうじ ) した後は 移動 ( いどう ) し続けます。

      交差点 ( こうさてん ) を通るたびにランダムで直進、 右折 ( うせつ ) 、 左折 ( させつ ) をします。

    •  
    • コードの 詳細 ( しょうさい )
    • x 座標 ( ざひょう ) を 水平 位置 ( いち ) × 道の中心の 間隔 ( かんかく ) (64)にします。

      y 座標 ( ざひょう ) を 垂直 ( すいちょく ) 位置 ( いち ) × 道の中心の 間隔 ( かんかく ) (64)にします。

      コスチュームを前にします。

      煙 ( けむり ) を 表示 ( ひょうじ ) する時間として3秒待ってから 表示 ( ひょうじ ) します。

      表示 ( ひょうじ ) 後は 可能 ( かのう ) 方向 更新 ( こうしん ) と 移動 ( いどう ) をくり返します。

  • 水平 位置 ( いち ) 、 垂直 ( すいちょく ) 位置 ( いち ) と x 座標 ( ざひょう ) 、y 座標 ( ざひょう ) の関係

可能 ( かのう ) 方向 更新 ( こうしん )

    • 説明 ( せつめい )
    • 現在の向きと 座標 ( ざひょう ) から直進、 右折 ( うせつ ) 、 左折 ( させつ ) のそれぞれの 可否 ( かひ ) を 判定 ( はんてい ) します。

    •  
    • コードの 詳細 ( しょうさい )
    • 直進可、 右折 ( うせつ ) 可、 左折 ( させつ ) 可をそれぞれ1にリセットします。

      上下左右いずれの 端 ( はし ) でもない場合は3つとも1のまま(直進、 右折 ( うせつ ) 、 左折 ( させつ ) すべて 可能 ( かのう ) )となります。

      可能 ( かのう ) 方向 更新 ( こうしん ) - 右端 ( みぎはし ) 、 可能 ( かのう ) 方向 更新 ( こうしん ) - 左端 ( ひだりはし ) 、 可能 ( かのう ) 方向 更新 ( こうしん ) - 上端 ( じょうたん ) 、 可能 ( かのう ) 方向 更新 ( こうしん ) - 下端 ( かたん ) を実行し、直線、 右折 ( うせつ ) 、 左折 ( させつ ) のうち実行できないものは0にします。

      例 ( たと ) えば 上端 ( じょうたん ) で上を向いている場合は 壁 ( かべ ) があって直進できないので 直進可を0にします。 下端 ( かたん ) で左を向いている場合はペンギンから見て左に 壁 ( かべ ) があるので 左折 ( させつ ) 可を0にします。

可能 ( かのう ) 方向 更新 ( こうしん ) - 右端 ( みぎはし )

    • 説明 ( せつめい )
    • ペンギンが 右端 ( みぎはし ) にいる場合の 判定処理 ( はんていしょり ) です。
      向きによって実行できない進み方を0にします。

    •  
    • コードの 詳細 ( しょうさい )
    • ペンギンが 右端 ( みぎはし ) にいる場合のみ 判定 ( はんてい ) を実行します。
      右を向いている場合は正面に 壁 ( かべ ) があり直進できないので 直進可を0にします。

    •  
    • 上を向いている場合は右 側 ( がわ ) に 壁 ( かべ ) があり 右折 ( うせつ ) できないので 右折 ( うせつ ) 可を0にします。
    •  
    • 下を向いている場合は左 側 ( がわ ) に 壁 ( かべ ) があり 左折 ( させつ ) できないので 左折 ( させつ ) 可を0にします。
    •  
    • 左を向いている場合は 影響 ( えいきょう ) がないので何もしません。

可能 ( かのう ) 方向 更新 ( こうしん ) - 左端 ( ひだりはし )

    • 説明 ( せつめい )
    • ペンギンが 左端 ( ひだりはし ) にいる場合の 判定処理 ( はんていしょり ) です。
      向きによって実行できない進み方を0にします。

    •  
    • コードの 詳細 ( しょうさい )
    • ペンギンが 左端 ( ひだりはし ) にいる場合のみ 判定 ( はんてい ) を実行します。
      左を向いている場合は正面に 壁 ( かべ ) があり直進できないので 直進可を0にします。

    •  
    • 上を向いている場合は左 側 ( がわ ) に 壁 ( かべ ) があり 左折 ( させつ ) できないので 左折 ( させつ ) 可を0にします。
    •  
    • 下を向いている場合は右 側 ( がわ ) に 壁 ( かべ ) があり 右折 ( うせつ ) できないので 右折 ( うせつ ) 可を0にします。
    •  
    • 右を向いている場合は 影響 ( えいきょう ) がないので何もしません。

可能 ( かのう ) 方向 更新 ( こうしん ) - 上端 ( じょうたん )

    • 説明 ( せつめい )
    • ペンギンが 上端 ( じょうたん ) にいる場合の 判定処理 ( はんていしょり ) です。
      向きによって実行できない進み方を0にします。

    •  
    • コードの 詳細 ( しょうさい )
    • ペンギンが 上端 ( じょうたん ) にいる場合のみ 判定 ( はんてい ) を実行します。
      上を向いている場合は正面に 壁 ( かべ ) があり直進できないので 直進可を0にします。


    •  
    • 右を向いている場合は左 側 ( がわ ) に 壁 ( かべ ) があり 左折 ( させつ ) できないので 左折 ( させつ ) 可を0にします。
    •  
    • 左を向いている場合は右 側 ( がわ ) に 壁 ( かべ ) があり 右折 ( うせつ ) できないので 右折 ( うせつ ) 可を0にします。
    •  
    • 下を向いている場合は 影響 ( えいきょう ) がないので何もしません。

可能 ( かのう ) 方向 更新 ( こうしん ) - 下端 ( かたん )

    • 説明 ( せつめい )
    • ペンギンが 下端 ( かたん ) にいる場合の 判定処理 ( はんていしょり ) です。
      向きによって実行できない進み方を0にします。

    •  
    • コードの 詳細 ( しょうさい )
    • ペンギンが 下端 ( かたん ) にいる場合のみ 判定 ( はんてい ) を実行します。
      下を向いている場合は正面に 壁 ( かべ ) があり直進できないので 直進可を0にします。

    •  
    • 左を向いている場合は左 側 ( がわ ) に 壁 ( かべ ) があり 左折 ( させつ ) できないので 左折 ( させつ ) 可を0にします。
    •  
    • 右を向いている場合は右 側 ( がわ ) に 壁 ( かべ ) があり 右折 ( うせつ ) できないので 右折 ( うせつ ) 可を0にします。
    •  
    • 上を向いている場合は 影響 ( えいきょう ) がないので何もしません。
  • 左 上端 ( じょうたん )

  • 上端 ( じょうたん )


  • 右 上端 ( じょうたん )

  • 左端 ( ひだりはし )


  • 端以外 ( はしいがい )
  • 右端 ( みぎはし )


  • 左下 隅 ( すみ )

  • 下 隅 ( すみ )


  • 右下 隅 ( すみ )

移動 ( いどう )

    • 説明 ( せつめい )
    • ペンギンを 移動 ( いどう ) させます。
      移動後 ( いどうご ) に上下左右の 端 ( はし ) を 超 ( こ ) えてしまっている場合は 端 ( はし ) の 座標 ( ざひょう ) にします。

    •  
    • コードの 詳細 ( しょうさい )
    • 移動中 ( いどうちゅう ) を実行します。 x 座標 ( ざひょう ) が 右端 ( みぎはし ) よりも大きい( 右端 ( みぎはし ) を 超 ( こ ) えてしまっている)場合は x 座標 ( ざひょう ) の 値 ( あたい ) を 右端 ( みぎはし ) にします。
      x 座標 ( ざひょう ) が 左端 ( ひだりはし ) よりも小さい( 左端 ( ひだりはし ) を 超 ( こ ) えてしまっている)場合は x 座標 ( ざひょう ) の 値 ( あたい ) を 左端 ( ひだりはし ) にします。
      y 座標 ( ざひょう ) が 上端 ( じょうたん ) よりも大きい( 上端 ( じょうたん ) を 超 ( こ ) えてしまっている)場合は y 座標 ( ざひょう ) の 値 ( あたい ) を 上端 ( じょうたん ) にします。
      y 座標 ( ざひょう ) が 下端 ( かたん ) よりも小さい( 下端 ( かたん ) を 超 ( こ ) えてしまっている)場合は y 座標 ( ざひょう ) の 値 ( あたい ) を 下端 ( かたん ) にします。

移動中 ( いどうちゅう )

    • 説明 ( せつめい )
    • 交差点 ( こうさてん ) から次の 交差点 ( こうさてん ) まで 移動 ( いどう ) します。
      移動 ( いどう ) する方向は直進、 右折 ( うせつ ) 、 左折 ( させつ ) からランダムに 選択 ( せんたく ) します。

    •  
    • コードの 詳細 ( しょうさい )
    • 方向を決めるを実行します。 進んだ回数を0にします。 Aの 処理 ( しょり ) を32回くり返して64歩 移動 ( いどう ) します( 交差点 ( こうさてん ) から次の 交差点 ( こうさてん ) まで 移動 ( いどう ) します)。

    •  
    • A :

      2歩 動 ( うご ) かします。
      もし 炎 ( ほのお ) に 触 ( ふ ) れたら 炎 ( ほのお ) に 触 ( ふ ) れたを実行した後に、このクローンを 削除 ( さくじょ ) します。
      もし 爆弾 ( ばくだん ) に 触 ( ふ ) れたら 爆弾 ( ばくだん ) に 触 ( ふ ) れたを実行した後に、このスクリプトを止めます。
      ( 爆弾 ( ばくだん ) に 触 ( ふ ) れる前の 交差点 ( こうさてん ) まで 戻 ( もど ) ります)。 炎 ( ほのお ) 、 爆弾 ( ばくだん ) のどちらにも 触 ( ふ ) れなかった場合は 進んだ回数を1 増 ( ふ ) やします。

    •  
    • くり返しが 完了 ( かんりょう ) したら進んだ回数を0に 戻 ( もど ) します。

方向を決める

    • 説明 ( せつめい )
    • 交差点 ( こうさてん ) で直進、 右折 ( うせつ ) 、 左折 ( させつ ) 、反転のうちのどの方向に進むのかを決めます( 基本的 ( きほんてき ) に反転するケースはなし)。

    •  
    • コードの 詳細 ( しょうさい )
    • 目の前に 壁 ( かべ ) があって直進が 可能 ( かのう ) (直進可=1)ならA、直進 不可 ( ふか ) ( 直進可=0)ならBを実行します。

    •  
    • A :

      左右のどちらかに曲がれる場合は50%の 確率 ( かくりつ ) で直進し、 50%の 確率 ( かくりつ ) で左右を決める を実行して左右のどちらに曲がるのかを決定します。
      左右のどちらにも 壁 ( かべ ) があって曲がれない場合( 右折 ( うせつ ) 可、 左折 ( させつ ) 可がどちらも0)は直進します
      (ただしこの 判定 ( はんてい ) は 交差点 ( こうさてん ) でおこなう、 基本的 ( きほんてき ) にどちらも 壁 ( かべ ) であるケースはありません)。

    •  
    • B :

      左右のどちらかに曲がれる場合は 左右を決めるを実行して左右のどちらに曲がるのかを決定します。
      左右のどちらにも 壁 ( かべ ) があって曲がれない場合( 右折 ( うせつ ) 可、 左折 ( させつ ) 可 がどちらも0)は反転します(180度回して 逆 ( ぎゃく ) 方向を向きます)
      (ただしこの 判定 ( はんてい ) は 交差点 ( こうさてん ) でおこなう、 基本的 ( きほんてき ) にどちらも 壁 ( かべ ) であるケースはありません)。

    •  
    • コスチューム 更新 ( こうしん ) を実行してペンギンの見た目の向きを 変更 ( へんこう ) します。

左右を決める

    • 説明 ( せつめい )
    • 交差点 ( こうさてん ) で 右折 ( うせつ ) 、 左折 ( させつ ) のどちらをおこなうのかを決めます。

    •  
    • コードの 詳細 ( しょうさい )
    • もし 右折 ( うせつ ) 不可 ( ふか ) ( 右折 ( うせつ ) 可=0)なら 向きを左に90度回して 左折 ( させつ ) します。

      右折 ( うせつ ) 可( 右折 ( うせつ ) 可=1である場合はAの 処理 ( しょり ) を実行します。

    •  
    • A :

      もし 左折 ( させつ ) 不可 ( ふか ) ( 左折 ( させつ ) 可=0)なら 向きを右に90度回して 右折 ( うせつ ) します。

      もし 左折 ( させつ ) も 可能 ( かのう ) ( 左折 ( させつ ) 可=1)なら 同じ 確率 ( かくりつ ) で左右のどちらに曲がります(左右どちらかに90度回します)。

交差点 ( こうさてん ) で進む方向の 確率 ( かくりつ )

    • 説明 ( せつめい )
    • 3方向すべてに 移動可 ( いどうか ) 。
      まず直進するのか曲がるのかをランダムに決定します。
      直進する 確率 ( かくりつ ) を50%、曲がる 確率 ( かくりつ ) を50%としています。
      左右に曲がる場合、 左折 ( させつ ) する 確率 ( かくりつ ) を50%、 右折 ( うせつ ) する 確率 ( かくりつ ) を50%としています。
      3つのうちのどの方向に進むかの 確率 ( かくりつ ) は直進が50%、 左折 ( させつ ) が25%、 右折 ( うせつ ) が25%となります。

    • 説明 ( せつめい )
    • 3つのうちの2つの方向に 移動可 ( いどうか ) 。
      まず直進するのか曲がるのかをランダムに決定します。
      直進する 確率 ( かくりつ ) を50%、曲がる 確率 ( かくりつ ) を50%としています。
      左右に曲がる場合、 移動 ( いどう ) できる方向に曲がります。
      2つのうちのどの方向に進むかの 確率 ( かくりつ ) は直進が50%、 左折 ( させつ ) または 右折 ( うせつ ) が50%となります。

    • 説明 ( せつめい )
    • 3つのうちの1つの方向にのみ 移動可 ( いどうか ) 。
      移動 ( いどう ) できる方向に進みます。

炎 ( ほのお ) に 触 ( ふ ) れた

    • 説明 ( せつめい )
    • 炎 ( ほのお ) に 触 ( ふ ) れたらコスチュームをダメージにした 状態 ( じょうたい ) で2 秒 ( びょう ) 表示 ( ひょうじ ) し、クローンを 削除 ( さくじょ ) します。

      この時スコアを 加算 ( かさん ) します。

    •  
    • コードの 詳細 ( しょうさい )
    • コスチュームをダメージにし、 スコアを1 増 ( ふ ) やして2秒待ちます。

爆弾 ( ばくだん ) に 触 ( ふ ) れた

    • 説明 ( せつめい )
    • 爆弾 ( ばくだん ) に 触 ( ふ ) れたら反転します。

    •  
    • コードの 詳細 ( しょうさい )
    • 爆弾 ( ばくだん ) に 触 ( ふ ) れたら後ろに2歩 戻 ( もど ) り、向きを180度回して 逆 ( ぎゃく ) 方向にします。

      コスチューム 更新 ( こうしん ) を実行してペンギンの見た目の向きを 変更 ( へんこう ) します。

      2歩×進んだ回数だけ 移動 ( いどう ) して 交差点 ( こうさてん ) まで 移動 ( いどう ) します。

      くり返しが 完了 ( かんりょう ) したら進んだ回数を0に 戻 ( もど ) します。

コスチューム 更新 ( こうしん )

    • 説明 ( せつめい )
    • 実際 ( じっさい ) の向きと見た目の向きが合うようにコスチュームを 変更 ( へんこう ) します。

    •  
    • コードの 詳細 ( しょうさい )
    • 向きの 絶対値 ( ぜったいち ) が45度より小さい場合(-45度< 向き<45度)はコスチュームを 後ろにします。

      向きの 絶対値 ( ぜったいち ) が45度以上で135度より小さい場合 (-135度<向き<-45度または45度< 向き<135度)はコスチュームを 横にします。

      向きの 絶対値 ( ぜったいち ) が135度以上の場合( 向き<-135度または 向き>135度)はコスチュームを 前にします。

爆弾 ( ばくだん )

主な 動 ( うご ) き

  • スペースキーを 押 ( お ) すとPlayerと同じ 座標 ( ざひょう ) に 爆弾 ( ばくだん ) が1個 置 ( お ) かれます
    (Playerが 爆弾 ( ばくだん ) のクローンを作ります)。
  • 置 ( お ) いてから約3秒後に 爆発 ( ばくはつ ) します(同じ 座標 ( ざひょう ) に 炎 ( ほのお ) のクローンを作ります)。
  • 他の 爆弾 ( ばくだん ) の 爆発 ( ばくはつ ) による 炎 ( ほのお ) に 触 ( ふ ) れるとすぐに 爆発 ( ばくはつ ) します。

クローンされたとき

    • 説明 ( せつめい )
    • Playerと同じ 座標 ( ざひょう ) に 表示 ( ひょうじ ) し、ふくらんだり 縮 ( ちぢ ) んだりした後に 爆発 ( ばくはつ ) します。

      炎 ( ほのお ) に 触 ( ふ ) れたらその時点ですぐに 爆発 ( ばくはつ ) します。

    •  
    • コードの 詳細 ( しょうさい )
    • x 座標 ( ざひょう ) を Playerのx 座標 ( ざひょう ) にします。

      y 座標 ( ざひょう ) を Playerのy 座標 ( ざひょう ) にします。

      コスチュームを 爆弾 ( ばくだん ) 1にして 表示 ( ひょうじ ) します。 0.2秒待ちます。Aの 処理 ( しょり ) を5回くり返します。

    •  
    • A :

      炎 ( ほのお ) に 触 ( ふ ) れたら 爆発 ( ばくはつ ) を実行し、 1秒待ってからクローンを 削除 ( さくじょ ) します。
      コスチュームを 爆発 ( ばくはつ ) 1と 爆発 ( ばくはつ ) 2で 交互 ( こうご ) に入れ 替 ( か ) えます。

    •  
    • くり返しが終わったら 爆発 ( ばくはつ ) を 実行し、1秒待ってからクローンを 削除 ( さくじょ ) します。

爆発 ( ばくはつ )

    • 説明 ( せつめい )
    • 爆発 ( ばくはつ ) 音を鳴らし、 炎 ( ほのお ) のクローンを作ります。

      炎 ( ほのお ) のクローンは 爆発 ( ばくはつ ) した 爆弾 ( ばくだん ) と同じ 座標 ( ざひょう ) に 表示 ( ひょうじ ) されます。

    •  
    • コードの 詳細 ( しょうさい )
    • 非表示 ( ひひょうじ ) にします。
      drum bass3の音を鳴らします。
      爆心地 ( ばくしんち ) Xをx 座標 ( ざひょう ) にします。
      爆心地 ( ばくしんち ) Yをy 座標 ( ざひょう ) にします。

      爆発 ( ばくはつ ) した 爆弾 ( ばくだん ) と同じ 座標 ( ざひょう ) に 炎 ( ほのお ) のクローンを 表示 ( ひょうじ ) するために 爆心地 ( ばくしんち ) X、 爆心地 ( ばくしんち ) Yに 爆弾 ( ばくだん ) の 座標 ( ざひょう ) をコピーしています。

      炎 ( ほのお ) のクローンを作ります。使用中の 爆弾 ( ばくだん ) 数を1 減 ( へ ) らします。

炎 ( ほのお )

主な 動 ( うご ) き

  • 爆弾 ( ばくだん ) が 爆発 ( ばくはつ ) すると、まずその 位置 ( いち ) に 炎 ( ほのお ) が1つ作られ、そこから上下左右の4方向に広がっていきます ( 爆弾 ( ばくだん ) が1つ目の 炎 ( ほのお ) のクローンを作り、外に広がっていく 炎 ( ほのお ) のクローンは 炎 ( ほのお ) が作ります)。
  • 爆発 ( ばくはつ ) した場所に作られた1つ目の 炎 ( ほのお ) は上下左右それぞれに向けた 炎 ( ほのお ) のクローンを1つずつ作ります。 作られた 炎 ( ほのお ) は外 側 ( がわ ) に向かって少し 移動 ( いどう ) し、同じ方向を向いた 炎 ( ほのお ) のクローンを1つ作ります。 新しく作られた 炎 ( ほのお ) も外 側 ( がわ ) に向かって少し 移動 ( いどう ) し、同じ方向を向いた 炎 ( ほのお ) のクローンを1つ作ります。 これをくり返して各方向に 炎 ( ほのお ) が広がっていきます。
  • 壁 ( かべ ) に当たったらそれ以上は広がりません。

クローンされたとき

    • 説明 ( せつめい )
    • まず 爆発 ( ばくはつ ) の中心にクローンが作られ、そこから上下左右の向きの 炎 ( ほのお ) のクローンを1つずつ(計4つ)作ります。

      作られたクローンはそれぞれの向きに 移動 ( いどう ) した後に 爆発 ( ばくはつ ) の外 側 ( がわ ) に向かって同じ向きのクローンを1つ作ります。

      その作られたクローンがさらに外 側 ( がわ ) に 移動 ( いどう ) して1つクローンを作るという 処理 ( しょり ) を 続けていくことで 炎 ( ほのお ) が 徐々 ( じょじょ ) に外 側 ( がわ ) に広がっていくようにします。

    •  
    • コードの 詳細 ( しょうさい )
    • 爆発 ( ばくはつ ) の中心に作られたクローン(タイプ=1)であれば 中心の 炎 ( ほのお ) を実行し、 1秒後にこのクローンを 削除 ( さくじょ ) します。

      2つ目 以降 ( いこう ) のクローン( タイプが2以上)であれば 2つ目 以降 ( いこう ) の 炎 ( ほのお ) を実行し、 0.5秒後にこのクローンを 削除 ( さくじょ ) します。

中心の 炎 ( ほのお )

    • 説明 ( せつめい )
    • 爆発 ( ばくはつ ) 直後に 爆発 ( ばくはつ ) の中心に作られた最初の 炎 ( ほのお ) の 処理 ( しょり ) です。

      上下左右の方向に広がっていく4つの 炎 ( ほのお ) のクローンを作ります。

    •  
    • コードの 詳細 ( しょうさい )
    • x 座標 ( ざひょう ) を 爆心地 ( ばくしんち ) Xにします。
      y 座標 ( ざひょう ) を 爆心地 ( ばくしんち ) Yにします。
      爆発 ( ばくはつ ) した 爆弾 ( ばくだん ) と同じ 座標 ( ざひょう ) に 表示 ( ひょうじ ) します。
      向きを 上向きにしてクローンを作ります。 (上方向へ広がっていきます。)
      同じように右向き、 下向き、 左向きのクローンを作ります。

2つ目 以降 ( いこう ) の 炎 ( ほのお )

    • 説明 ( せつめい )
    • 2つ目 以降 ( いこう ) の 炎 ( ほのお ) の 処理 ( しょり ) です。

      向いている方向に 移動 ( いどう ) した後、同じ向きのクローンを作ります。

      それぞれのクローンが外 側 ( がわ ) に 移動 ( いどう ) するクローンを1つずつ作っていくことで外 側 ( がわ ) に 炎 ( ほのお ) が広がっていくようにします。

    •  
    • コードの 詳細 ( しょうさい )
    • 上向き、 下向きのクローンは 縦移動 ( たていどう ) を実行します。

      右向き、 左向きのクローンは 横移動 ( よこいどう ) を実行します。

      2番目(タイプ=2)、 3番目(タイプ=3)の場合はクローンを作ります。

      4番目(タイプ=4)の場合はクローンを作らず、 炎 ( ほのお ) の広がりはここまでとします。

縦移動 ( たていどう )

    • 説明 ( せつめい )
    • 炎 ( ほのお ) を 縦 ( たて ) 方向(上または下)に 移動 ( いどう ) します。

      縦 ( たて ) 方向の道の中央から左右にそれぞれ一定の 幅 ( はば ) (9)の中に 炎 ( ほのお ) のx 座標 ( ざひょう ) がある場合のみ 縦 ( たて ) の方向へ 移動 ( いどう ) します。

      縦 ( たて ) 方向へ 移動 ( いどう ) する 際 ( さい ) には、 炎 ( ほのお ) のx 座標 ( ざひょう ) をずらして 縦 ( たて ) 方向の道の中央へ合わせます

      (x 座標 ( ざひょう ) が横方向へ 移動 ( いどう ) できる 範囲 ( はんい ) にあるかどうかの 判定 ( はんてい ) と 縦 ( たて ) 方向の 道の中央へ合わせるためにx 座標 ( ざひょう ) をずらす 量 ( りょう ) の計算は 道 通過判定 ( つうかはんてい ) でおこないます)。

    •  
    • コードの 詳細 ( しょうさい )
    • 道 通過判定 ( つうかはんてい ) を実行します。

      対象 ( たいしょう ) としてx 座標 ( ざひょう ) を渡します。 縦 ( たて ) 方向の道の中心からのx 座標 ( ざひょう ) のズレが通れる 幅 ( はば ) におさまっていない場合は 座標 ( ざひょう ) をずらす 量 ( りょう ) に( 通れる 幅 ( はば ) の半分(9)+1)が入ってくるので、 その場合は次の 処理 ( しょり ) ( 縦 ( たて ) への 移動 ( いどう ) )へ進まずにスクリプトを終了します。

      ズレが通れる 幅 ( はば ) におさまっている場合は 以降 ( いこう ) の 処理 ( しょり ) を実行します。

      炎 ( ほのお ) のx 座標 ( ざひょう ) を 座標 ( ざひょう ) をずらす 量 ( りょう ) だけ 変 ( か ) えて、 縦 ( たて ) 方向の道の中央に合わせます。

      縦 ( たて ) に 移動 ( いどう ) する を実行して向いている方向に 移動 ( いどう ) させます。

縦 ( たて ) に 移動 ( いどう ) する

    • 説明 ( せつめい )
    • 炎 ( ほのお ) を 縦 ( たて ) 方向(上または下)に32(4×8)歩 移動 ( いどう ) させます。

      途中 ( とちゅう ) で 端 ( はし ) に 到達 ( とうたつ ) した場合はそこで 移動 ( いどう ) を終了します。

    •  
    • コードの 詳細 ( しょうさい )
    • Aの 処理 ( しょり ) を8回くり返します。

    •  
    • A :

      端 ( はし ) までの 距離 ( きょり ) が4より小さく (( 端 ( はし ) の 座標 ( ざひょう ) - y 座標 ( ざひょう ) )の 絶対値 ( ぜったいち ) < 4)、 4歩 動 ( うご ) かすと 端 ( はし ) を 超 ( こ ) えてしまう場合は y 座標 ( ざひょう ) を 端 ( はし ) の 座標 ( ざひょう ) にして 移動 ( いどう ) を終了します。
      端 ( はし ) までの 距離 ( きょり ) が4以上ある場合は4歩 動 ( うご ) かします。
      絶対値 ( ぜったいち ) を 比較 ( ひかく ) することで上下どちらに 移動 ( いどう ) する場合でも同じように 判定 ( はんてい ) できるようにしています。

横移動 ( よこいどう )

    • 説明 ( せつめい )
    • 炎 ( ほのお ) を横方向(左または右)に 移動 ( いどう ) します。

      横方向の道の中央から上下にそれぞれ一定の 幅 ( はば ) (9)の中に 炎 ( ほのお ) のy 座標 ( ざひょう ) がある場合のみ横の方向へ 移動 ( いどう ) します。

      横方向へ 移動 ( いどう ) する 際 ( さい ) には、 炎 ( ほのお ) のy 座標 ( ざひょう ) をずらして横方向の道の中央へ合わせます

      (y 座標 ( ざひょう ) が横方向へ 移動 ( いどう ) できる 範囲 ( はんい ) にあるかどうかの 判定 ( はんてい ) と横方向の道の中央へ 合わせるためにy 座標 ( ざひょう ) をずらす 量 ( りょう ) の計算は 道 通過判定 ( つうかはんてい ) でおこないます)。

    •  
    • コードの 詳細 ( しょうさい )
    • 道 通過判定 ( つうかはんてい ) を実行します。 対象 ( たいしょう ) として y 座標 ( ざひょう ) を渡します。

      横方向の道の中心からのy 座標 ( ざひょう ) のズレが通れる 幅 ( はば ) におさまっていない場合は 座標 ( ざひょう ) をずらす 量 ( りょう ) に (通れる 幅 ( はば ) の半分(9)+1)が入ってくるので、その場合は次の 処理 ( しょり ) (横への 移動 ( いどう ) )へ進まずにスクリプトを終了します。

      ズレが通れる 幅 ( はば ) におさまっている場合は 以降 ( いこう ) の 処理 ( しょり ) を実行します。

      炎 ( ほのお ) のy 座標 ( ざひょう ) を 座標 ( ざひょう ) をずらす 量 ( りょう ) だけ 変 ( か ) えて、 横方向の道の中央に合わせます。

      横に 移動 ( いどう ) する を実行して向いている方向に 移動 ( いどう ) させます。

横移動中 ( よこいどうちゅう )

    • 説明 ( せつめい )
    • 炎 ( ほのお ) を横方向(左または右)に32(4×8)歩 移動 ( いどう ) させます。

      途中 ( とちゅう ) で 端 ( はし ) に 到達 ( とうたつ ) した場合はそこで 移動 ( いどう ) を終了します。

    •  
    • コードの 詳細 ( しょうさい )
    • Aの 処理 ( しょり ) を8回くり返します。

    •  
    • A :

      端 ( はし ) までの 距離 ( きょり ) が4より小さく(( 端 ( はし ) の 座標 ( ざひょう ) - x 座標 ( ざひょう ) )の 絶対値 ( ぜったいち ) < 4) 、4歩 動 ( うご ) かすと 端 ( はし ) を 超 ( こ ) えてしまう場合はx 座標 ( ざひょう ) を 端 ( はし ) の 座標 ( ざひょう ) にして 移動 ( いどう ) を終了します。

      端 ( はし ) までの 距離 ( きょり ) が4以上ある場合は4歩 動 ( うご ) かします。

      絶対値 ( ぜったいち ) を 比較 ( ひかく ) することで左右どちらに 移動 ( いどう ) する場合でも同じように 判定 ( はんてい ) できるようにしています。

    • タイプ1
    • 爆弾 ( ばくだん ) が 爆発 ( ばくはつ ) する 際 ( さい ) に 炎 ( ほのお ) のクローン(タイプ1)が作られます。
      爆発 ( ばくはつ ) した 爆弾 ( ばくだん ) と同じ 位置 ( いち ) に 表示 ( ひょうじ ) 。
      同じ 位置 ( いち ) に 炎 ( ほのお ) のクローン(タイプ2)を4つ作ります。クローンのそれぞれの向きは上下左右にします。

    • タイプ2
    • 炎 ( ほのお ) のクローン(タイプ1)から 炎 ( ほのお ) のクローン(タイプ2)が4つ作られます。
      作られたらそれぞれの向きに4×8=32だけ 移動 ( いどう ) します。
      同じ 位置 ( いち ) に同じ向きの 炎 ( ほのお ) のクローン(タイプ3)を1つ作ります。

    • タイプ3
    • 炎 ( ほのお ) のクローン(タイプ2)から 炎 ( ほのお ) のクローン(タイプ3)が1つずつ作られます。
      作られたらそれぞれの向きに4×8=32だけ 移動 ( いどう ) します。
      同じ 位置 ( いち ) に同じ向きの 炎 ( ほのお ) のクローン(タイプ4)を1つ作ります。

    • タイプ4
    • 炎 ( ほのお ) のクローン(タイプ3)から 炎 ( ほのお ) のクローン(タイプ4)が1つずつ作られます。
      作られたらそれぞれの向きに4×8=32だけ 移動 ( いどう ) します。
      タイプ4はあらたなクローンを作りません。

道 通過判定 ( つうかはんてい )

    • 説明 ( せつめい )
    • 進行方向の道の中央からの 炎 ( ほのお ) の 位置 ( いち ) のズレが通れる 幅 ( はば ) の半分(9)の 中にある場合のみ進行方向への 移動可 ( いどうか ) と 判定 ( はんてい ) します。

      また進行方向へ 移動 ( いどう ) する 際 ( さい ) には、 炎 ( ほのお ) の 位置 ( いち ) をずらして進行方向の道の中央へ合わせます。 そのずらす 量 ( りょう ) ( 座標 ( ざひょう ) をずらす 量 ( りょう ) )もこのスクリプト内で計算します。

      進行方向の道の中央からの 炎 ( ほのお ) の 位置 ( いち ) のズレが大きく、 通過 ( つうか ) できないと 判定 ( はんてい ) した場合は 座標 ( ざひょう ) をずらす 量 ( りょう ) を 通れる 幅 ( はば ) の半分(9)+1としておきます。

    •  
    • コードの 詳細 ( しょうさい )
    • 座標 ( ざひょう ) を 道の中心の 間隔 ( かんかく ) (64)で 割 ( わ ) った 余 ( あま ) りを計算します

      (進行方向の道の中央からのズレの大きさを計算しています)。

      割 ( わ ) った 余 ( あま ) りの 大きさに応じて 以下 ( いか ) のA、B、Cのいずれかを実行します。

    •  
    • A :

      割 ( わ ) った 余 ( あま ) りが 通れる 幅 ( はば ) の半分(9) 以下 ( いか ) である場合 (進行方向の道の中央に対するPlayerのプラス方向へのズレが 通れる 幅 ( はば ) の半分(9) 以下 ( いか ) である場合)
      - 割 ( わ ) った 余 ( あま ) りを 座標 ( ざひょう ) をずらす 量 ( りょう ) にします ( 座標 ( ざひょう ) をマイナス方向に 割 ( わ ) った 余 ( あま ) り分だけずらします)。

    •  
    • B :

      (道の中心の 間隔 ( かんかく ) (64)- 割 ( わ ) った 余 ( あま ) り)が 通れる 幅 ( はば ) の半分(9) 以下 ( いか ) である場合 (進行方向の道の中央に対する 炎 ( ほのお ) のマイナス方向へのズレが 通れる 幅 ( はば ) の半分(9) 以下 ( いか ) である場合)
      (道の中心の 間隔 ( かんかく ) (64)- 割 ( わ ) った 余 ( あま ) り)を 座標 ( ざひょう ) をずらす 量 ( りょう ) にします。 ( 座標 ( ざひょう ) をプラス方向に(道の中心の 間隔 ( かんかく ) (64)- 割 ( わ ) った 余 ( あま ) り)だけずらします)。

    •  
    • C :

      それ以外の場合 (進行方向の道の中央と 炎 ( ほのお ) の中心との 距離 ( きょり ) が 通れる 幅 ( はば ) の半分より大きい場合)
      座標 ( ざひょう ) をずらす 量 ( りょう ) を( 通れる 幅 ( はば ) の半分(9)+1)にしておきます (こうしておくことで次の 処理 ( しょり ) (横への 移動 ( いどう ) )へ進まずにスクリプトを終了するようにします)。

煙 ( けむり )

主な 動 ( うご ) き

  • ペンギンを 出現 ( しゅつげん ) させる 際 ( さい ) に、 予告 ( よこく ) としてその 位置 ( いち ) に先に 煙 ( けむり ) を3 秒程 ( びょうほど ) 表示 ( ひょうじ ) します (ペンギンが 煙 ( けむり ) のクローンを作ります)。
  • 最初は 薄 ( うす ) く 表示 ( ひょうじ ) し、 徐々 ( じょじょ ) に 濃 ( こ ) くしていきます。

がクリックされたとき

  • 非表示 ( ひひょうじ ) にします。

クローンされたとき

    • 説明 ( せつめい )
    • ペンギンが 出現 ( しゅつげん ) する直前に 表示 ( ひょうじ ) します。

    •  
    • コードの 詳細 ( しょうさい )
    • ghostの 効果 ( こうか ) を50にします。
      x 座標 ( ざひょう ) を 煙 ( けむり ) X× 道の中心の 間隔 ( かんかく ) にします。
      y 座標 ( ざひょう ) を 煙 ( けむり ) Y× 道の中心の 間隔 ( かんかく ) にします。
      表示 ( ひょうじ ) します。

      Aの 処理 ( しょり ) を5回くり返した後にこのクローンを 削除 ( さくじょ ) します (大きくしたり小さくしたりをくり返しながら 徐々 ( じょじょ ) に 濃 ( こ ) くしています)。

    •  
    • A :

      ghostの 効果 ( こうか ) を10 減 ( へ ) らします( 濃 ( こ ) くします)。
      60%、100%と 交互 ( こうご ) に大きさを 変 ( か ) えます。

GAME OVER

主な 動 ( うご ) き

  • からgame overが送られてきたら 画面中央 ( がめんちゅうおう ) の前面に 表示 ( ひょうじ ) し、すべてを止める。

がクリックされたとき

  • 非表示 ( ひひょうじ ) にします。
    大きさを50%にします。
    x 座標 ( ざひょう ) を0、 y 座標 ( ざひょう ) を0( 画面中央 ( がめんちゅうおう ) )にします。

GAME OVERを受け取ったら

  • 3秒待ってから前に出して 表示 ( ひょうじ ) した後、すべてを止めます。

Start

主な 動 ( うご ) き

  • がクリックされたらコスチュームをStartにして 表示 ( ひょうじ ) する。
  • クリックされたら 各 ( かく ) スプライトへStartを送り、 非表示 ( ひひょうじ ) にする( 各 ( かく ) スプライト Startを受け取ってゲーム開始)。

緑の 旗 ( はた ) がクリックされたとき

    • 説明 ( せつめい )
    • ゲームスタートの 準備 ( じゅんび ) をする。
    •  
    • 必要な 処理 ( しょり )
    • 座標 ( ざひょう ) の 初期化 ( しょきか )
      Startの 表示 ( ひょうじ )
      マウスポインターが上に乗ったとき色を 変 ( か ) える
    •  
    • コードの 詳細 ( しょうさい )
    • x 座標 ( ざひょう ) (横の 表示 ( ひょうじ ) 位置 ( いち ) )を0、 y 座標 ( ざひょう ) ( 縦 ( たて ) の 表示 ( ひょうじ ) 位置 ( いち ) )を0にします。

      コスチュームをStartにして 表示 ( ひょうじ ) します。 (ゲーム終了時は 非表示 ( ひひょうじ ) になっているため)

      マウスポインターがこのスプライトに 触 ( ふ ) れているときは色を 変 ( か ) え、 離 ( はな ) れたら元の色に 戻 ( もど ) します。

このスプライトがクリックされたとき

    • コードの 詳細 ( しょうさい )
    • コード「 緑の 旗 ( はた ) がクリックされたとき」が動作しているので、止めます。

      各 ( かく ) スプライトにStartを送りゲームを開始します。

^