さて、前回のお悩みポイントの改善からやるか!
1つ目は衛星に当たったビームの反射を擬似的な処理で行っているので\に下から当たった場合と左から当たった場合で条件分け出来てない点にあった。
要するに左回りと右回りでビーム反射後の角度を90度回転させる方向が違ってくるんですよね(同じ衛星の同じコスチューム(角度)でも)。
![](https://blogimg.goo.ne.jp/user_image/60/a1/a40497f703102305cd001eb6204fea14.png)
![](https://blogimg.goo.ne.jp/user_image/15/a6/ab44378991f6649f68282e2e277d5ae7.png)
![](https://blogimg.goo.ne.jp/user_image/49/25/081b69d98ec5bd6f95d85a5ed2a0ac61.png)
だがまだ問題が。衛星1の背後にヤマトを配置する場合、ビームをまるまる一周させて衛星1に2度反射させないといけないのだがこの処理が・・。
判定対象が「スプライト」だとちょっと思いつかないので、衛星1の背面に紫のカラーリングをして、ここに当たると右(90度方向)に向きを変えるという処理をする
![](https://blogimg.goo.ne.jp/user_image/52/9b/6b4b3d964133caa02080f6b1ec88de44.png)
ちょっとビジュアル的にギリギリだけど一応欲しかった動きになっている
後は単発のビーム先頭部分だけを作って衛星の反射時に一瞬画像を表示させ、反射の音声をつけて、ヤマトに命中したら得点加算、命中画像表示と。よしよし・・と思ってたんだけど、今日の処理を書くまでは普通に働いていたヤマトへの命中判定がどうしても発生しなくなってしまった(-_-;)
いや、絶対におかしいだろ・・ただ反射の条件分けをちょっと複雑にしただけなのに・・。このせいで夜中2時まで粘ってしまう。5時に起きないといけないのにw
![](https://blogimg.goo.ne.jp/user_image/49/55/6f78b1eb6daaeab382fc5a8825adb516.png)
もうScratchやめようか?と思ったけど悔しいので帰宅してからすぐさま続きをやる。ダメ元で同じスプライトの別スレッド(って言うの?)に命中処理を移動させたら・・・
![](https://blogimg.goo.ne.jp/user_image/07/50/cb319d88320c4c521444b14daf917c0f.png)
キターッ!結構な量のコードになってて、エディタの操作性で見通しがクソ悪いので、もうコレ以上いじりたくない(ビームの判定だけを担う先端部分の黄色とビーム表現のためのクローン部分のピンクが別スプライトなのも辛いところ)。
後はREAD、INPUT、LOOP部分を書けばゲームになるな・・
リストで撃墜可能なポジションを設定してランダムでヤマトを配置(READ)
変数でカウンタを作って衛星の角度変更は時間内のみ(INPUT)
カウンタ0でビーム発射、命中すればループ、外れたらゲームオーバー(LOOP?)
撃沈するたびにカウンタを短くしていく(LOOP)・・って感じで