質問編集履歴
5
文章を修正しました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -7,7 +7,7 @@
|
|
7
7
|
|
8
8
|
|
9
9
|
|
10
|
-
Github: https://github.com/Shigurechan/ActionGame/
|
10
|
+
Github: https://github.com/Shigurechan/ActionGame/tree/07b47f5b32f4dfd6f93e70ca4a9609d891e48d9f
|
11
11
|
使用しているライブラリ: dxlib
|
12
12
|

|
13
13
|
|
4
文章を追加
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
|

|
12
13
|
|
13
14
|
|
3
文章を修正しました。
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
ファイルを読み込む関数でfclose()しているのにも関わらず処理が物凄く重たくなる
|
1
|
+
ファイルを読み込む関数でfclose()しているのにも関わらず処理が物凄く重たくなる場合の修正方法が知りたい。
|
body
CHANGED
@@ -1,7 +1,6 @@
|
|
1
|
-
提示コードのvoid Stage::LoadStage()関数が原因で処理が物凄く重たくなりまともに動作しなくなるのですがなぜでしょうか?**毎フレーム実行する関数ではな
|
1
|
+
提示コードのvoid Stage::LoadStage()関数が原因で処理が物凄く重たくなりまともに動作しなくなるのですがなぜでしょうか?**毎フレーム実行する関数ではないです該当コードは **//マップオブジェクトを設定 の二重for文**をコメントアウトすると問題なく動作するのですがこれはどう修正したらいいのでしょうか?
|
2
2
|
|
3
3
|
|
4
|
-
|
5
4
|
確認、試したこと
|
6
5
|
中身が空のfor文やその他のループ文はないかどうか?
|
7
6
|
画像の読み込みを毎フレームやっているかどうか確認
|
2
文章とタイトルを修正
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
|
1
|
+
ファイルを読み込む関数でfclose()しているのにも関わらず処理が物凄く重たくなる原因が知りたい。
|
body
CHANGED
@@ -1,6 +1,4 @@
|
|
1
|
-
提示コードですが下記のような規模のプログラムでなぜデバッグモードで実行すると処理が物凄く重たくなり全く動作しなくなるのでしょうか?
|
2
|
-
原因がさっぱりわかりません。Releaseモードでは普通に実行できます。
|
3
|
-
|
1
|
+
提示コードのvoid Stage::LoadStage()関数が原因で処理が物凄く重たくなりまともに動作しなくなるのですがなぜでしょうか?**毎フレーム実行する関数ではなく。ファイルポインタもfclose()しています。**原因がわかりません。
|
4
2
|
|
5
3
|
|
6
4
|
|
1
文章を追記
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
|
```
|