質問編集履歴

6

タイトルと文章を編集しました。

2019/11/24 11:14

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- Dxlib 毎フレーム更新し続けるとデータが破壊される?そんことが起こってそです。
1
+ Dxlib 毎フレームでメモリを確保するという行為は危険のでしょ
test CHANGED
@@ -4,6 +4,8 @@
4
4
 
5
5
 
6
6
 
7
+
8
+
7
9
  一番怪しいのはCollision_Update(){}のposだと思い移動済みの値を見るためのfutureで値を作りそれを最後にposに入れているのですが何を
8
10
 
9
11
  したかわかりません。デバッグログを表示させましたが確かに値がおかしくなってます。
@@ -14,7 +16,11 @@
14
16
 
15
17
 
16
18
 
19
+ ※追記
20
+
17
- ※追記ですがポインタをstd::unique_ptr<>()変更ましたが以前同じ現象が発生してます。
21
+ future変数を値型にしたら正常に動くのですなぜ参照にするとこのような現象が起きるのでょうか?問題は解決しおりますが参照型にすると起きるので原因が気になります
22
+
23
+
18
24
 
19
25
 
20
26
 

5

タイトルを編集しました。

2019/11/24 11:14

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- Dxlib 値が謎のオフローを起こす原因について知りたい
1
+ Dxlib 毎フレム更新し続けるとデタが破壊される?そんなことが起こってそうで。?
test CHANGED
@@ -1,6 +1,6 @@
1
- 提示画像の通り最初はプレイヤー居るのですが数秒たつと画面からいなくなり上のデバッグ用のpos座標のY軸の値がバグりますこれは何をしたのでしょうか?また描画は触っていないので提示コードには載せていません。
1
+ 質問1.提示画像の通り最初はプレイヤー居るのですが数秒たつと画面からいなくなり上のデバッグ用のpos座標のY軸の値がバグりますこれは何をしたのでしょうか?また描画は触っていないので提示コードには載せていません。
2
+
2
-
3
+ 質問2、スマートポインタも何かしらの不具合を起こすのでしょうか?
3
-
4
4
 
5
5
 
6
6
 
@@ -12,6 +12,8 @@
12
12
 
13
13
 
14
14
 
15
+
16
+
15
17
  ※追記ですがポインタをstd::unique_ptr<>()に変更しましたが以前同じ現象が発生しています。
16
18
 
17
19
 

4

提示コードの間違えを編集しました。

2019/11/24 11:03

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -454,7 +454,7 @@
454
454
 
455
455
  //Position* future = new Position();
456
456
 
457
- std::unique_ptr<Position> future(new Position());/////////////////////////
457
+ std::unique_ptr<Position> future(std::make_unique<Position>());/////////////////////////
458
458
 
459
459
 
460
460
 

3

文章と画像を追記し内容を編集しました。

2019/11/24 04:28

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -12,9 +12,15 @@
12
12
 
13
13
 
14
14
 
15
+ ※追記ですがポインタをstd::unique_ptr<>()に変更しましたが以前同じ現象が発生しています。
16
+
17
+
18
+
19
+
20
+
15
21
  デバッグログの Log.txt
16
22
 
17
- ![イメージ説明](f8bce901e83602df3356bd3ee99a9d45.png)
23
+ ![イメージ説明](c0cbaeee02057b892e092c00e940ec3d.png)
18
24
 
19
25
  ![![イメージ説明](2681ad6330e9a21fb9082693976a029d.png)]
20
26
 
@@ -22,6 +28,22 @@
22
28
 
23
29
  ```ここに言語を入力
24
30
 
31
+ #include "DxLib.h"
32
+
33
+ #include <vector>
34
+
35
+ #include <math.h>
36
+
37
+ #include <fstream>
38
+
39
+ #include "string.h"
40
+
41
+ #include <iostream>
42
+
43
+ #include "frame.h"
44
+
45
+ #include <memory>
46
+
25
47
 
26
48
 
27
49
  #define DEBUG 1//デバッグ有効 1
@@ -118,6 +140,8 @@
118
140
 
119
141
  }
120
142
 
143
+
144
+
121
145
  /*
122
146
 
123
147
  Position operator + (Position p)
@@ -138,9 +162,11 @@
138
162
 
139
163
 
140
164
 
165
+
166
+
141
- Position* pos;//座標
167
+ std::unique_ptr<Position> pos;//座標//////////////////////////////////////////
142
-
168
+
143
- Position* move;//移動係数
169
+ std::unique_ptr<Position> move;//移動係数/////////////////////////////////////
144
170
 
145
171
  key *State;//キー状態
146
172
 
@@ -184,6 +210,8 @@
184
210
 
185
211
 
186
212
 
213
+
214
+
187
215
  int player_graph[10];
188
216
 
189
217
  int map_graph[40];
@@ -200,13 +228,23 @@
200
228
 
201
229
 
202
230
 
203
- game()
231
+ game():
232
+
233
+ pos(std::make_unique<Position>()),
234
+
235
+ move(std::make_unique<Position>())
236
+
237
+
238
+
239
+
204
240
 
205
241
  {
206
242
 
207
- pos = new Position();
243
+
208
-
209
- move = new Position();
244
+
245
+
246
+
247
+
210
248
 
211
249
  pos->x = 100.0f;
212
250
 
@@ -414,7 +452,9 @@
414
452
 
415
453
  {
416
454
 
417
- Position *future = new Position();
455
+ //Position* future = new Position();
456
+
457
+ std::unique_ptr<Position> future(new Position());/////////////////////////
418
458
 
419
459
 
420
460
 
@@ -682,7 +722,7 @@
682
722
 
683
723
 
684
724
 
685
- ofs << "pos: " << future->x << " , " << future->y << std::endl;
725
+ ofs << "future-> : " << future->x << " , " << future->y << std::endl;
686
726
 
687
727
 
688
728
 
@@ -692,7 +732,7 @@
692
732
 
693
733
 
694
734
 
695
- //delete(future);
735
+
696
736
 
697
737
  }
698
738
 
@@ -746,4 +786,6 @@
746
786
 
747
787
  /*-------------------------------------------------------------*/
748
788
 
789
+
790
+
749
791
  ```

2

提示画像を追加

2019/11/24 04:21

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -4,9 +4,17 @@
4
4
 
5
5
 
6
6
 
7
- 一番怪しいのはCollision_Update(){}のposだと思いすが見てもわかりません
7
+ 一番怪しいのはCollision_Update(){}のposだと思い移動済みの値を見るためのfutureで値を作りそれを最後にposに入れているのですが
8
+
8
-
9
+ したかわかりません。デバッグログを表示させましたが確かに値がおかしくなってます。
10
+
11
+
12
+
13
+
14
+
9
-
15
+ デバッグログの Log.txt
16
+
17
+ ![イメージ説明](f8bce901e83602df3356bd3ee99a9d45.png)
10
18
 
11
19
  ![![イメージ説明](2681ad6330e9a21fb9082693976a029d.png)]
12
20
 

1

文章編集しました。

2019/11/23 14:05

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -4,6 +4,10 @@
4
4
 
5
5
 
6
6
 
7
+ 一番怪しいのはCollision_Update(){}のposだと思いますが他を見てもわかりません
8
+
9
+
10
+
7
11
  ![![イメージ説明](2681ad6330e9a21fb9082693976a029d.png)]
8
12
 
9
13