回答編集履歴

3

インデント修正

2022/03/20 19:11

投稿

jimbe
jimbe

スコア12659

test CHANGED
@@ -34,16 +34,16 @@
34
34
 
35
35
  // 画面外に出たら消滅
36
36
  if (g_stagedata.balls[i].x > g_stagedata.scrollx + 1000 ||
37
- g_stagedata.balls[i].x < g_stagedata.scrollx - 1000) {
37
+ g_stagedata.balls[i].x < g_stagedata.scrollx - 1000) {
38
38
  g_stagedata.balls[i].living = FALSE;
39
- continue;
39
+ continue;
40
40
  } else {
41
41
  // マップ当たり判定
42
42
  AtariInfo atari = CheckBlock(g_stagedata.balls[i].x, g_stagedata.balls[i].y, g_stagedata.balls[i].x);
43
43
  if (atari.DR == TRUE || atari.UR == TRUE) {
44
- g_stagedata.balls[i].living = FALSE;
44
+ g_stagedata.balls[i].living = FALSE;
45
- continue;
45
+ continue;
46
- }
46
+ }
47
47
  }
48
48
 
49
49
  DrawGraph((int)(g_stagedata.balls[i].x - g_stagedata.scrollx), (int)g_stagedata.balls[i].y, g_imghandles.ball, TRUE);

2

修正

2022/03/20 19:09

投稿

jimbe
jimbe

スコア12659

test CHANGED
@@ -1,6 +1,6 @@
1
1
  右と左で計算式の一部値の符号しか変わらないので、それを返す関数を一つ作るだけで、左右別の条件を作る必要が無くなります。
2
- また、ボールの移動方向は発射時の hero の turn ですが、turn は mv の符号にしか影響しませんので、最初から mv を balls に作っておいて発射時に mv / -mv を入れてしまえば、移動時に向きを見る必要がありません
2
+ また、ボールの移動方向は発射時の hero の turn 」のみ決まるのは大前提ですが、turn は mv の符号にしか影響しませんので、最初から mv を balls に作っておいて発射時に mv / -mv を入れてしまえば、移動時に向きを見る必要も無くなりま
3
- (ついでに mv の計算も発射時に毎回する必要は無さそうに思います。)
3
+ (ついでに mv の計算も発射時に毎回する必要は無さそうに思います。→ 発射ボタンによっては早い/遅いボールを撃てる?)
4
4
  (さらについでに、 "DrawBall" という名前の関数で "移動" から "発射処理" まで行うのは変な気がします。)
5
5
 
6
6
  ※コンパイルも何も出来ないので切り貼りしたイメージコードです。コンパイルエラーその他が発生する可能性があります。

1

追加

2022/03/20 19:06

投稿

jimbe
jimbe

スコア12659

test CHANGED
@@ -1,6 +1,7 @@
1
1
  右と左で計算式の一部値の符号しか変わらないので、それを返す関数を一つ作るだけで、左右別の条件を作る必要が無くなります。
2
2
  また、ボールの移動方向は発射時の hero の turn ですが、turn は mv の符号にしか影響しませんので、最初から mv を balls に作っておいて発射時に mv / -mv を入れてしまえば、移動時に向きを見る必要がありません。
3
3
  (ついでに mv の計算も発射時に毎回する必要は無さそうに思います。)
4
+ (さらについでに、 "DrawBall" という名前の関数で "移動" から "発射処理" まで行うのは変な気がします。)
4
5
 
5
6
  ※コンパイルも何も出来ないので切り貼りしたイメージコードです。コンパイルエラーその他が発生する可能性があります。
6
7
  ```c?