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

質問編集履歴

5

文章を修正しました。

2021/03/13 04:29

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -7,7 +7,7 @@
7
7
 
8
8
 
9
9
 
10
- Github: https://github.com/Shigurechan/ActionGame/commit/1f4be3b0904a91a4749b7ceec44518b4abf4bd89
10
+ Github: https://github.com/Shigurechan/ActionGame/tree/07b47f5b32f4dfd6f93e70ca4a9609d891e48d9f
11
11
  使用しているライブラリ: dxlib
12
12
  ![イメージ説明](eda29084bf80f399987bb24a2942a70b.jpeg)
13
13
 

4

文章を追加

2021/03/13 04:29

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -7,7 +7,8 @@
7
7
 
8
8
 
9
9
 
10
-
10
+ Github: https://github.com/Shigurechan/ActionGame/commit/1f4be3b0904a91a4749b7ceec44518b4abf4bd89
11
+ 使用しているライブラリ: dxlib
11
12
  ![イメージ説明](eda29084bf80f399987bb24a2942a70b.jpeg)
12
13
 
13
14
 

3

文章を修正しました。

2021/03/12 06:49

投稿

退会済みユーザー
title CHANGED
@@ -1,1 +1,1 @@
1
- ファイルを読み込む関数でfclose()しているのにも関わらず処理が物凄く重たくなる原因が知りたい。
1
+ ファイルを読み込む関数でfclose()しているのにも関わらず処理が物凄く重たくなる場合の修正方法が知りたい。
body CHANGED
@@ -1,7 +1,6 @@
1
- 提示コードのvoid Stage::LoadStage()関数が原因で処理が物凄く重たくなりまともに動作しなくなるのですがなぜでしょうか?**毎フレーム実行する関数ではなく。ファイルポインタもfclose()して**原因りません。
1
+ 提示コードのvoid Stage::LoadStage()関数が原因で処理が物凄く重たくなりまともに動作しなくなるのですがなぜでしょうか?**毎フレーム実行する関数ではない該当コードは **//マップオブジェクトを設定  の二重for文**をコメントアウトすると問題なく動作するのですこれはどう修正したらいいのでしょう
2
2
 
3
3
 
4
-
5
4
  確認、試したこと
6
5
  中身が空のfor文やその他のループ文はないかどうか?
7
6
  画像の読み込みを毎フレームやっているかどうか確認

2

文章とタイトルを修正

2021/03/12 04:55

投稿

退会済みユーザー
title CHANGED
@@ -1,1 +1,1 @@
1
- Visual studio 2019Debug モードで実行すと極端に処理が重くなる原因が知りたい。
1
+ ファイルを読み込む関数fclose()していも関わらず処理が物凄くくなる原因が知りたい。
body CHANGED
@@ -1,6 +1,4 @@
1
- 提示コードですが下記のような規模のプログラムでなぜデバッグモードで実行すると処理が物凄く重たくなり全く動作しなくなるのでしょうか?
2
- 原因がさっぱりわかりません。Releaseモードでは普通に実行できます。
3
- 追記: 調べたところvoid Stage::LoadStage()関数でをコメントアウトすると問題なく実行できます。ということはこの関数問題あることわかりましたが何問題なのでしょうか?毎フレーム実行する関数ではなく。ファイルポインタもfclose();しています。
1
+ 提示コードのvoid Stage::LoadStage()関数が原因処理物凄く重たくなりまともに動作しなくなるのですがなぜでしょうか?**毎フレーム実行する関数ではなく。ファイルポインタもfclose()しています。**原因がわかりません。
4
2
 
5
3
 
6
4
 

1

文章を追記

2021/03/12 04:03

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,6 +1,9 @@
1
1
  提示コードですが下記のような規模のプログラムでなぜデバッグモードで実行すると処理が物凄く重たくなり全く動作しなくなるのでしょうか?
2
2
  原因がさっぱりわかりません。Releaseモードでは普通に実行できます。
3
+ 追記: 調べたところvoid Stage::LoadStage()関数でをコメントアウトすると問題なく実行できます。ということはこの関数が問題であることがわかりましたが何問題なのでしょうか?毎フレーム実行する関数ではなく。ファイルポインタもfclose();しています。
3
4
 
5
+
6
+
4
7
  確認、試したこと
5
8
  中身が空のfor文やその他のループ文はないかどうか?
6
9
  画像の読み込みを毎フレームやっているかどうか確認
@@ -104,4 +107,87 @@
104
107
 
105
108
  }
106
109
 
110
+ ```
111
+
112
+ ```cpp
113
+ void Stage::LoadStage()
114
+ {
115
+
116
+ mStage.clear(); //ステージをクリア
117
+
118
+ // *** ステージロード ***
119
+ glm::ivec2 StageSize = glm::ivec2(0, 0); //画面サイズ
120
+ FILE* fp = NULL; //ファイルポインタ
121
+
122
+ fopen_s(&fp, "Stage_Data/Debug_Stage.bin", "rb"); //読み込みモードでファイルを開く
123
+
124
+ if (fp != NULL)
125
+ {
126
+ //ステージサイズを読み込む(先頭8バイト)
127
+ fread(&StageSize.x, sizeof(int), 1, fp);
128
+ fread(&StageSize.y, sizeof(int), 1, fp);
129
+
130
+ for (int y = 0; y < StageSize.y; y++)
131
+ {
132
+ std::vector<byte> tmp;
133
+ for (int x = 0; x < (int)StageSize.x; x++)
134
+ {
135
+ byte b = 0;
136
+ fread(&b, sizeof(byte), 1, fp);
137
+ tmp.push_back(b);
138
+
139
+ }
140
+
141
+
142
+ Stage_Grid->push_back(tmp);
143
+
144
+ }
145
+ fclose(fp);
146
+
147
+ }
148
+ else {
149
+ printf("ファイルを読み込めません。\n");
150
+ }
151
+
152
+ //マップオブジェクトを設定
153
+ for (int y = 0; y < StageSize.y; y++)
154
+ {
155
+ for (int x = 0; x < StageSize.x; x++)
156
+ {
157
+ switch (Stage_Grid->at(y).at(x))
158
+ {
159
+ //ブロック
160
+ case 1:
161
+ {
162
+ mStage.push_back(MapChip(StageObjectType::Block, glm::ivec2(x * CELL, y * CELL), BlockSize, Block_sprite));
163
+ }
164
+ break;
165
+
166
+ //レンガ
167
+ case 2:
168
+ {
169
+ mStage.push_back(MapChip(StageObjectType::Brick, glm::ivec2(x * CELL, y * CELL), BrickSize, Brick_sprite));
170
+ }
171
+ break;
172
+
173
+ //ショップ
174
+ case 3:
175
+ {
176
+ mStage.push_back(MapChip(StageObjectType::Shop, glm::ivec2(x * CELL, y * CELL), ShopSize, Shop_sprite));
177
+ }
178
+ break;
179
+
180
+ default:
181
+ {
182
+ mStage.push_back(MapChip(StageObjectType::Shop, glm::ivec2(x * CELL, y * CELL), glm::ivec2(0, 0), -1));
183
+ }
184
+ }
185
+ }
186
+ }
187
+
188
+
189
+ fclose(fp);
190
+
191
+ }
192
+
107
193
  ```