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

回答編集履歴

2

C++では拡張for文でなく、範囲for文と呼ぶため修正

2021/03/19 13:14

投稿

退会済みユーザー
answer CHANGED
@@ -9,7 +9,7 @@
9
9
 
10
10
  Releaseビルドでは高速に処理されたため、少し調べ改造してみました。
11
11
 
12
- ・当たり判定とスクロール内のループを拡張for文に変更
12
+ ・当たり判定とスクロール内のループを範囲for文に変更
13
13
  ・スクロール処理のエネミー周りのループ統合
14
14
  ・Stage::ColEnemyの無駄なコピーの削除
15
15
  ・Box_Collision::Intersectの関数呼び出しを1度ずつにしてローカル変数で処理するように変更

1

質問者の自己解決が解決になっていないため、追記

2021/03/19 13:13

投稿

退会済みユーザー
answer CHANGED
@@ -2,4 +2,20 @@
2
2
  当たり判定の処理を全要素対象に回しているなど非効率なので、その分処理に時間がかかっているように思えます。
3
3
  (なので、Game_Scene::Update()の当たり判定を削れば早くなる)
4
4
 
5
- あと、printf()でデバッグ目的であれば意味のない文字はやめたほうがいいとは思います。
5
+ あと、printf()でデバッグ目的であれば意味のない文字はやめたほうがいいとは思います。
6
+
7
+ ---
8
+ 質問者の自己解決が解決になっていないため、追記
9
+
10
+ Releaseビルドでは高速に処理されたため、少し調べ改造してみました。
11
+
12
+ ・当たり判定とスクロール内のループを拡張for文に変更
13
+ ・スクロール処理のエネミー周りのループ統合
14
+ ・Stage::ColEnemyの無駄なコピーの削除
15
+ ・Box_Collision::Intersectの関数呼び出しを1度ずつにしてローカル変数で処理するように変更
16
+ ・ColEnemy、ColEnemy_Bullet、ColPlayer、ColEnemy_Bulletを統合してループ数の削減
17
+
18
+ パッと見える範囲で直してみただけでもかなり改善しますね。
19
+ まだまだ無駄なコピーや関数呼び出しが多いので、減らすだけでも改善できそうですね。
20
+
21
+ ただ、Releaseビルドで高速に動作するのだから動きはそっちで確認すればいいと思いますが。