teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2021/07/29 13:39

投稿

thkana
thkana

スコア7738

answer CHANGED
@@ -1,4 +1,13 @@
1
1
  そもそも「当たる」とはプログラム上ではどういう現象というか状態のことでしょう。
2
2
  また、「敵と弾が消滅する」とはどうなることでしょう。
3
3
 
4
- そこを整理せずにいきなりプログラムをいじっても多分成果は得られません。まずは、日本語で説明してみるとどうなりますか
4
+ そこを整理せずにいきなりプログラムをいじっても多分成果は得られません。まずは、日本語で説明してみるとどうなりますか
5
+
6
+ ---
7
+ プログラムって、結局コンピュータにあなたのやりたいことを伝えるための命令書だから、コンピュータに何をやらせるかがちゃんとわかっていないとプログラムにならない。コンピュータに何をやらせるかがわからないと、どんなにプログラム言語に精通した人であってもやはりプログラムは組めない。
8
+
9
+ 真面目に考えるなら、SHOTで描く円とENEMYで描く敵の不透明な部分が少しでも重なるなら「当たり」。ENEMYの中心と弾の円の中心との関係を考えれば求まるけど、ちょっと面倒(まぁ、ほぼ一次関数なんで難しくはない)。
10
+
11
+ 私だったら、多少の正確さを犠牲にして、ENEMYの占める範囲を、ENEMYの中心を中心とする直径40の円ということに「してしまう」。そうすると、ENEMYの中心と弾の中心との距離が23より大きければ当たっていない、23以下なら当たっている、という「ことになる」。
12
+
13
+ 「消す」について言えば、今のプログラムでも画面の外に出た敵や弾を「消して」いるのだからそれと何らかわらないと思うけど...ここまで製作したのなら、きっとできると思いますけれどどうかしら。