質問編集履歴

8

文章を修正しました。

2021/02/04 04:11

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,4 @@
1
- 提示コードのStage.hpp部でBlock.hppをインクルードすると以下の提示画像のエラーが発生します。また**Block.hppのインクルードをコメントアウトすると正常にコンパイル出来ます。**これはどうしてでしょうか? 以下の提示インクルードコードは流石に関係ないので載せません。文字数の関係もありますが。これはどうしたらいいでしょうか? 全てのヘッダーにインクルードガードを実装してすべてソースファイルも定義しています。なぜなのでしょうか?
1
+ 提示コードのStage.hpp部でBlock.hppをインクルードすると以下の提示画像のエラーが発生します。また**Block.hppのインクルードをコメントアウトすると正常にコンパイル出来ます。**これはどうしてでしょうか? 全てのヘッダーにインクルードガードを実装してすべてソースファイルも定義しています。なぜなのでしょうか?
2
2
 
3
3
 
4
4
 
@@ -14,89 +14,619 @@
14
14
 
15
15
 
16
16
 
17
+
18
+
19
+ ```.hpp
20
+
21
+ // MapChip.hpp
22
+
23
+ #define ___MAPCHIP_HPP_
24
+
25
+
26
+
27
+ #include <iostream>
28
+
29
+ #include "glm/glm.hpp"
30
+
31
+
32
+
33
+ // 自作 関係
34
+
35
+ #include "../LoadTexture.hpp"
36
+
37
+ #include "../Collision.hpp"
38
+
39
+ #include "../Actor_2D.hpp"
40
+
41
+ #include "../Sprite.hpp"
42
+
43
+
44
+
45
+
46
+
47
+
48
+
49
+ /*####################################################
50
+
51
+ * マップチップ 描画クラス
52
+
53
+ ######################################################*/
54
+
55
+
56
+
57
+ class Sprite;
58
+
59
+ struct TextureData;
60
+
61
+
62
+
63
+ class MapChip : public Actor_2D
64
+
65
+ {
66
+
67
+ public:
68
+
69
+ MapChip(Entry* e, std::shared_ptr<TextureData> data, glm::ivec2 pos, TextureUV size, bool col); //
70
+
71
+ MapChip(); //
72
+
73
+ MapChip(const MapChip& m); //
74
+
75
+ ~MapChip(); //
76
+
77
+
78
+
79
+ void Update() override;
80
+
81
+ void Draw() override;
82
+
83
+
84
+
85
+ Box_Collision_2D mCol;
86
+
87
+
88
+
89
+ private:
90
+
91
+
92
+
93
+ std::shared_ptr<Sprite> mSprite;
94
+
95
+ std::shared_ptr<TextureData> Data;
96
+
97
+
98
+
99
+ TextureUV UV;
100
+
101
+ glm::ivec2 colSize;
102
+
103
+
104
+
105
+
106
+
107
+ };
108
+
109
+ #endif
110
+
111
+ ```
112
+
113
+
114
+
115
+ ```.hpp
116
+
117
+ //Block.hpp
118
+
119
+
120
+
121
+ #ifndef ___BLOCK_HPP
122
+
123
+ #define ___BLOCK_HPP
124
+
125
+
126
+
127
+ #include "../Actor_2D.hpp"
128
+
129
+ #include "../Entry.hpp"
130
+
131
+ #include "../LoadTexture.hpp"
132
+
133
+ #include "MapChip.hpp"
134
+
135
+
136
+
137
+
138
+
139
+ class Block : public Actor_2D
140
+
141
+ {
142
+
143
+ public:
144
+
145
+ Block(Entry* e, std::shared_ptr<TextureData> data, TextureUV uv, glm::ivec2 pos);
146
+
147
+ ~Block();
148
+
149
+
150
+
151
+ void Update() override;
152
+
153
+ void Draw() override;
154
+
155
+
156
+
157
+ std::vector<MapChip> block;
158
+
159
+
160
+
161
+ };
162
+
163
+
164
+
165
+
166
+
167
+ #endif
168
+
169
+
170
+
171
+ ```
172
+
173
+
174
+
175
+
176
+
177
+
178
+
179
+ ```.hpp
180
+
181
+ //Stage.hpp
182
+
183
+
184
+
185
+ #ifndef ___STAGE_HPP_
186
+
187
+ #define ___STAGE_HPP_
188
+
189
+
190
+
191
+
192
+
193
+ #include <glm/glm.hpp>
194
+
195
+ #include <iostream>
196
+
197
+ #include <vector>
198
+
199
+
200
+
201
+ #include "Block.hpp"
202
+
203
+
204
+
205
+ class Stage
206
+
207
+ {
208
+
209
+ public:
210
+
211
+
212
+
213
+ Stage(Entry * e); //コンストラクタ
214
+
215
+ ~Stage(); //デストラクタ
216
+
217
+
218
+
219
+ void Update();
220
+
221
+ void Draw();
222
+
223
+
224
+
225
+
226
+
227
+ private:
228
+
229
+
230
+
231
+
232
+
233
+ std::vector<Block> block;
234
+
235
+
236
+
237
+ class Entry* Owner;
238
+
239
+
240
+
241
+ };
242
+
243
+
244
+
245
+
246
+
247
+ #endif
248
+
249
+
250
+
251
+ ```
252
+
253
+
254
+
255
+
256
+
17
257
  ```hpp
18
258
 
19
- #include "../Collision.hpp"
259
+ //LoadTexture.hpp
260
+
20
-
261
+ #ifndef ___TEXTURE_HPP_
262
+
263
+ #define ___TEXTURE_HPP_
264
+
265
+
266
+
21
- #include "../Actor_2D.hpp"
267
+ #include "Entry.hpp"
22
-
268
+
23
- #include "../Sprite.hpp"
269
+ #include "glm/glm.hpp"
270
+
271
+
272
+
273
+ typedef unsigned char Byte; // Byte
274
+
275
+
276
+
277
+ #include <vector>
278
+
279
+ #include <iostream>
280
+
281
+
282
+
283
+
284
+
285
+ // 描画UV座標を指定
286
+
287
+
288
+
289
+ typedef struct TextureUV
290
+
291
+ {
292
+
293
+ glm::vec2 start;
294
+
295
+ glm::vec2 end;
296
+
297
+
298
+
299
+ }TextureUV;
300
+
301
+
302
+
303
+ // テクスチャデータ
304
+
305
+ typedef struct TextureData
306
+
307
+ {
308
+
309
+ std::shared_ptr<std::vector<Byte>> mData; //画像データ
310
+
311
+ glm::ivec2 mSize; //サイズ
312
+
313
+ int channels; //チャンネル数
314
+
315
+ }TextureData;
316
+
317
+
318
+
319
+
320
+
321
+ //画像ファイルのバイナリを返す。 
322
+
323
+ std::shared_ptr<TextureData> LoadTexture(const char* FileName);
324
+
325
+
326
+
327
+
328
+
329
+ int getTextureChannel(const char* str);
330
+
331
+ glm::vec4 getRGBAColor(int r, int g, int b, int a);
332
+
333
+
334
+
335
+
336
+
337
+
338
+
339
+ #endif
340
+
341
+
24
342
 
25
343
  ```
26
344
 
27
345
 
28
346
 
29
-
30
-
31
-
32
-
33
347
  ```.hpp
34
348
 
35
- // MapChip.hpp
349
+ //Entry.hpp
350
+
36
-
351
+ #ifndef ___ENTRY_H_
352
+
37
- #define ___MAPCHIP_HPP_
353
+ #define ___ENTRY_H_
354
+
355
+
356
+
38
-
357
+ #define SCREEN_WIDTH ((float)(16.0f * 60.0f)) //画面の横
358
+
39
-
359
+ #define SCREEN_HEIGHT ((float)(9.0f * 60.0f)) //画面の縦
360
+
361
+ #define PI ((float)3.14159265359f) //円周率
362
+
363
+
364
+
365
+
366
+
367
+ //自作ヘッダー 関係
368
+
369
+ #include "Camera.hpp"
370
+
371
+ #include "Text.hpp"
372
+
373
+ #include "Sprite.hpp"
374
+
375
+ #include "Input.hpp"
376
+
377
+ //#include "Sound.hpp"
378
+
379
+ //#include "LoadTexture.hpp"
380
+
381
+ //#include "Rectangle.hpp"
382
+
383
+ //#include "Circle.hpp"
384
+
385
+ #include "Actor_2D.hpp"
386
+
387
+
388
+
389
+ // テスト 関係
390
+
391
+ #include "../Header/Game/Scene.hpp"
392
+
393
+
394
+
395
+
396
+
397
+
398
+
399
+
400
+
401
+
402
+
403
+
404
+
405
+ //標準ヘッダー関係
406
+
407
+ #include "stdio.h"
40
408
 
41
409
  #include <iostream>
42
410
 
411
+ #include <vector>
412
+
413
+ #include <time.h>
414
+
415
+ #include <random>
416
+
417
+
418
+
419
+ //OpenGL関係
420
+
421
+ #include <GLEW/include/GL/glew.h>
422
+
423
+ #include <gl/GL.h>
424
+
425
+ #include <GLFW/include/GLFW/glfw3.h>
426
+
427
+
428
+
429
+ //OpenAL関係
430
+
431
+ #include <OpenAL/include/al.h>
432
+
433
+ #include <OpenAL/include/alc.h>
434
+
435
+
436
+
437
+ //OpenCV 関係
438
+
439
+ #include <opencv2/opencv.hpp>
440
+
441
+
442
+
443
+ //数学ライブラリ
444
+
445
+ #include "glm/ext.hpp"
446
+
447
+
448
+
449
+
450
+
451
+ /*###############################################################################################################
452
+
453
+ # GLmain 
454
+
455
+ #################################################################################################################*/
456
+
457
+
458
+
459
+ class Entry
460
+
461
+ {
462
+
463
+
464
+
465
+ public:
466
+
467
+
468
+
469
+ Entry(); //コンストラクタ
470
+
471
+ ~Entry(); //デスストラクタ
472
+
473
+ bool Initialization(); //初期化
474
+
475
+ bool RunLoop(); //メインループ
476
+
477
+ void Update(); //計算
478
+
479
+ void GenerateOutput(); //描画
480
+
481
+
482
+
483
+ GLFWwindow* GL_Window = nullptr; //OpenGLコンテキスト
484
+
485
+ ALCdevice* AL_Device = nullptr; //デバイス
486
+
487
+ ALCcontext* AL_Context = nullptr; //コンテキスト
488
+
489
+
490
+
491
+ glm::ivec2 getWindowSize(); //画面サイズを取得
492
+
493
+
494
+
495
+ private: // ####################################################################################################################################################################
496
+
497
+ std::unique_ptr<class Input> mInput;
498
+
499
+
500
+
501
+
502
+
503
+ std::unique_ptr<class Scene> scene; //
504
+
505
+
506
+
507
+
508
+
509
+
510
+
511
+ bool mIsRunLoop; //メインループ
512
+
513
+ void ExitEntryKey(); //ゲーム終了
514
+
515
+ };
516
+
517
+ #endif
518
+
519
+ ```
520
+
521
+
522
+
523
+ ```hpp
524
+
525
+ //Sprite.hpp
526
+
527
+ #ifndef ___SPRITE_HPP_
528
+
529
+ #define ___SPRITE_HPP_
530
+
531
+
532
+
533
+ //自作ヘッダー
534
+
535
+ #include "Transform_2D.hpp"
536
+
537
+ #include "Shader.hpp"
538
+
539
+ #include "VertexData.hpp"
540
+
541
+ #include "LoadTexture.hpp"
542
+
543
+
544
+
545
+ //標準ヘッダー関係
546
+
547
+ #include "stdio.h"
548
+
549
+ #include <fstream>
550
+
551
+ #include <sstream>
552
+
553
+ #include <iostream>
554
+
555
+ #include <vector>
556
+
557
+ #include <crtdbg.h>
558
+
559
+
560
+
561
+
562
+
563
+ //OpenGL関係
564
+
565
+ #include "GLEW/include/GL/glew.h"
566
+
567
+ #include "gl/GL.h"
568
+
569
+ #include "GLFW/include/GLFW/glfw3.h"
570
+
571
+
572
+
573
+ // OpenCV
574
+
575
+ #include "opencv2/opencv.hpp"
576
+
577
+
578
+
579
+ //数学ライブラリ
580
+
581
+ #include "glm/ext.hpp"
582
+
43
583
  #include "glm/glm.hpp"
44
584
 
45
-
46
-
47
- // 自作 関係
48
-
49
- #include "../LoadTexture.hpp"
50
-
51
- #include "../Collision.hpp"
52
-
53
- #include "../Actor_2D.hpp"
54
-
55
- #include "../Sprite.hpp"
585
+ //#include "Entry.hpp"
56
-
57
-
58
-
59
-
60
-
61
-
62
-
586
+
587
+
588
+
589
+
590
+
591
+
592
+
593
+
594
+
63
- /*####################################################
595
+ /*###############################################################################################################
64
-
596
+
65
- * マッチップ 描画クラス
597
+ # ライト描画
66
-
598
+
67
- ######################################################*/
599
+ #################################################################################################################*/
68
-
69
-
70
-
600
+
601
+
602
+
71
- class Sprite;
603
+ class Entry;
72
604
 
73
605
  struct TextureData;
74
606
 
75
-
76
-
77
- class MapChip : public Actor_2D
607
+ class Sprite : public Transform_2D
78
608
 
79
609
  {
80
610
 
81
611
  public:
82
612
 
613
+
614
+
83
- MapChip(Entry* e, std::shared_ptr<TextureData> data, glm::ivec2 pos, TextureUV size, bool col); //
615
+ Sprite(class Entry* g, std::shared_ptr<TextureData> sp); //コンストラクタ
84
-
85
- MapChip(); //
616
+
86
-
87
- MapChip(const MapChip& m); //
88
-
89
- ~MapChip(); //
617
+ ~Sprite(); //デストラクタ
618
+
90
-
619
+ Sprite(const Sprite& sp); //コピーコンストラクタ
91
-
92
-
620
+
93
- void Update() override;
621
+ void DrawGraph(glm::ivec2 pos,glm::vec2 start,glm::vec2 end); //
94
-
622
+
623
+
624
+
625
+
626
+
627
+
628
+
95
- void Draw() override;
629
+ glm::vec2 getSize();
96
-
97
-
98
-
99
- Box_Collision_2D mCol;
100
630
 
101
631
 
102
632
 
@@ -104,430 +634,44 @@
104
634
 
105
635
 
106
636
 
637
+
638
+
639
+ VertexAttribute_2D vertex[6]; //頂点データ
640
+
641
+
642
+
643
+ class Entry* Entry; //Entry クラス
644
+
645
+
646
+
647
+
648
+
107
- std::shared_ptr<Sprite> mSprite;
649
+ glm::vec2 mPicSize; //画像サイズ
650
+
651
+
652
+
653
+
654
+
108
-
655
+ //OpenGL 関係
656
+
657
+ GLuint VAO;
658
+
659
+ GLuint VBO;
660
+
661
+ GLuint IBO;
662
+
663
+ GLuint TextureID; //テクスチャID
664
+
665
+
666
+
109
- std::shared_ptr<TextureData> Data;
667
+ std::shared_ptr<class Shader> shader; //シェーダープログラム
110
-
111
-
112
-
113
- TextureUV UV;
668
+
114
-
115
- glm::ivec2 colSize;
669
+ class Entry *Owner;//Entryクラス
116
-
117
-
118
-
119
-
120
670
 
121
671
  };
122
672
 
673
+
674
+
123
- #endif
675
+ #endif;
124
676
 
125
677
  ```
126
-
127
-
128
-
129
- ```.hpp
130
-
131
- //Block.hpp
132
-
133
-
134
-
135
- #ifndef ___BLOCK_HPP
136
-
137
- #define ___BLOCK_HPP
138
-
139
-
140
-
141
- #include "../Actor_2D.hpp"
142
-
143
- #include "../Entry.hpp"
144
-
145
- #include "../LoadTexture.hpp"
146
-
147
- #include "MapChip.hpp"
148
-
149
-
150
-
151
-
152
-
153
- class Block : public Actor_2D
154
-
155
- {
156
-
157
- public:
158
-
159
- Block(Entry* e, std::shared_ptr<TextureData> data, TextureUV uv, glm::ivec2 pos);
160
-
161
- ~Block();
162
-
163
-
164
-
165
- void Update() override;
166
-
167
- void Draw() override;
168
-
169
-
170
-
171
- std::vector<MapChip> block;
172
-
173
-
174
-
175
- };
176
-
177
-
178
-
179
-
180
-
181
- #endif
182
-
183
-
184
-
185
- ```
186
-
187
-
188
-
189
-
190
-
191
-
192
-
193
- ```.hpp
194
-
195
- //Stage.hpp
196
-
197
-
198
-
199
- #ifndef ___STAGE_HPP_
200
-
201
- #define ___STAGE_HPP_
202
-
203
-
204
-
205
-
206
-
207
- #include <glm/glm.hpp>
208
-
209
- #include <iostream>
210
-
211
- #include <vector>
212
-
213
-
214
-
215
- #include "Block.hpp"
216
-
217
-
218
-
219
- class Stage
220
-
221
- {
222
-
223
- public:
224
-
225
-
226
-
227
- Stage(Entry * e); //コンストラクタ
228
-
229
- ~Stage(); //デストラクタ
230
-
231
-
232
-
233
- void Update();
234
-
235
- void Draw();
236
-
237
-
238
-
239
-
240
-
241
- private:
242
-
243
-
244
-
245
-
246
-
247
- std::vector<Block> block;
248
-
249
-
250
-
251
- class Entry* Owner;
252
-
253
-
254
-
255
- };
256
-
257
-
258
-
259
-
260
-
261
- #endif
262
-
263
-
264
-
265
- ```
266
-
267
-
268
-
269
-
270
-
271
- ```hpp
272
-
273
- //LoadTexture.hpp
274
-
275
- #ifndef ___TEXTURE_HPP_
276
-
277
- #define ___TEXTURE_HPP_
278
-
279
-
280
-
281
- #include "Entry.hpp"
282
-
283
- #include "glm/glm.hpp"
284
-
285
-
286
-
287
- typedef unsigned char Byte; // Byte
288
-
289
-
290
-
291
- #include <vector>
292
-
293
- #include <iostream>
294
-
295
-
296
-
297
-
298
-
299
- // 描画UV座標を指定
300
-
301
-
302
-
303
- typedef struct TextureUV
304
-
305
- {
306
-
307
- glm::vec2 start;
308
-
309
- glm::vec2 end;
310
-
311
-
312
-
313
- }TextureUV;
314
-
315
-
316
-
317
- // テクスチャデータ
318
-
319
- typedef struct TextureData
320
-
321
- {
322
-
323
- std::shared_ptr<std::vector<Byte>> mData; //画像データ
324
-
325
- glm::ivec2 mSize; //サイズ
326
-
327
- int channels; //チャンネル数
328
-
329
- }TextureData;
330
-
331
-
332
-
333
-
334
-
335
- //画像ファイルのバイナリを返す。 
336
-
337
- std::shared_ptr<TextureData> LoadTexture(const char* FileName);
338
-
339
-
340
-
341
-
342
-
343
- int getTextureChannel(const char* str);
344
-
345
- glm::vec4 getRGBAColor(int r, int g, int b, int a);
346
-
347
-
348
-
349
-
350
-
351
-
352
-
353
- #endif
354
-
355
-
356
-
357
- ```
358
-
359
-
360
-
361
- ```.hpp
362
-
363
- //Entry.hpp
364
-
365
- #ifndef ___ENTRY_H_
366
-
367
- #define ___ENTRY_H_
368
-
369
-
370
-
371
- #define SCREEN_WIDTH ((float)(16.0f * 60.0f)) //画面の横
372
-
373
- #define SCREEN_HEIGHT ((float)(9.0f * 60.0f)) //画面の縦
374
-
375
- #define PI ((float)3.14159265359f) //円周率
376
-
377
-
378
-
379
-
380
-
381
- //自作ヘッダー 関係
382
-
383
- #include "Camera.hpp"
384
-
385
- #include "Text.hpp"
386
-
387
- #include "Sprite.hpp"
388
-
389
- #include "Input.hpp"
390
-
391
- //#include "Sound.hpp"
392
-
393
- //#include "LoadTexture.hpp"
394
-
395
- //#include "Rectangle.hpp"
396
-
397
- //#include "Circle.hpp"
398
-
399
- #include "Actor_2D.hpp"
400
-
401
-
402
-
403
- // テスト 関係
404
-
405
- #include "../Header/Game/Scene.hpp"
406
-
407
-
408
-
409
-
410
-
411
-
412
-
413
-
414
-
415
-
416
-
417
-
418
-
419
- //標準ヘッダー関係
420
-
421
- #include "stdio.h"
422
-
423
- #include <iostream>
424
-
425
- #include <vector>
426
-
427
- #include <time.h>
428
-
429
- #include <random>
430
-
431
-
432
-
433
- //OpenGL関係
434
-
435
- #include <GLEW/include/GL/glew.h>
436
-
437
- #include <gl/GL.h>
438
-
439
- #include <GLFW/include/GLFW/glfw3.h>
440
-
441
-
442
-
443
- //OpenAL関係
444
-
445
- #include <OpenAL/include/al.h>
446
-
447
- #include <OpenAL/include/alc.h>
448
-
449
-
450
-
451
- //OpenCV 関係
452
-
453
- #include <opencv2/opencv.hpp>
454
-
455
-
456
-
457
- //数学ライブラリ
458
-
459
- #include "glm/ext.hpp"
460
-
461
-
462
-
463
-
464
-
465
- /*###############################################################################################################
466
-
467
- # GLmain 
468
-
469
- #################################################################################################################*/
470
-
471
-
472
-
473
- class Entry
474
-
475
- {
476
-
477
-
478
-
479
- public:
480
-
481
-
482
-
483
- Entry(); //コンストラクタ
484
-
485
- ~Entry(); //デスストラクタ
486
-
487
- bool Initialization(); //初期化
488
-
489
- bool RunLoop(); //メインループ
490
-
491
- void Update(); //計算
492
-
493
- void GenerateOutput(); //描画
494
-
495
-
496
-
497
- GLFWwindow* GL_Window = nullptr; //OpenGLコンテキスト
498
-
499
- ALCdevice* AL_Device = nullptr; //デバイス
500
-
501
- ALCcontext* AL_Context = nullptr; //コンテキスト
502
-
503
-
504
-
505
- glm::ivec2 getWindowSize(); //画面サイズを取得
506
-
507
-
508
-
509
- private: // ####################################################################################################################################################################
510
-
511
- std::unique_ptr<class Input> mInput;
512
-
513
-
514
-
515
-
516
-
517
- std::unique_ptr<class Scene> scene; //
518
-
519
-
520
-
521
-
522
-
523
-
524
-
525
- bool mIsRunLoop; //メインループ
526
-
527
- void ExitEntryKey(); //ゲーム終了
528
-
529
- };
530
-
531
- #endif
532
-
533
- ```

7

文章と提示コードを修正しました。

2021/02/04 04:11

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -1,363 +1,533 @@
1
- 提示コードですがBlock.hppのコード部で以下のエラーが発生します。**定義されいせんと表示されますがしっかり定義されています**インクルードれているのすがなぜでしょうか?原因がどうしてもわかりません。**インクルードでインクルードされていないた確かめした。またインクルードードも確認しました**がやはり原因がわかりませんどうればいいのでしょか?
2
-
3
-
4
-
5
-
6
-
7
- エラー「 重大度レベル コード 説明 プロジェクト ファイル 行 抑制状態
8
-
9
- エラー C2061 構文エラー: 識別子 'TextureUV' OpenGL C:\Users\yw325\Desktop\OpenGL\OpenGL\Header\Game\Block.hpp 22
10
-
11
-  」
12
-
13
-
14
-
15
- エラー「 重大度レベル コード 説明 プロジェクト ファイル 行 抑制状態
16
-
17
- エラー C2065 'MapChip': 定義されていない識別子です。 OpenGL C:\Users\yw325\Desktop\OpenGL\OpenGL\Header\Game\Block.hpp 32
18
-
19
-  」
20
-
21
-
22
-
23
- エラー「 重大度レベル コード 説明 プロジェクト ファイル 行 抑制状態
24
-
25
- エラー C2065 'Sprite': 定義されていない識別子です。 OpenGL C:\Users\yw325\Desktop\OpenGL\OpenGL\Header\Game\MapChip.hpp 33
26
-
27
-  」
28
-
29
-
1
+ 提示コードのStage.hpp部でBlock.hppをインクルードすると以下の提示画像のエラーが発生します。ま**Block.hppのインクルードをコメントアウトすると正常にコンパイル出来ます。**こはどうしてでしょうか? 以下の提示インクルードードは流石に関係ないので載せせん文字数の関係もありすが。これはどうしらいいでしょうか? 全てのヘッダーにインクルードードを実装してすべてソースファイル定義ています。なぜなのでしょか?
2
+
3
+
4
+
5
+ glmはglmライブラリです。
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+ ![イメージ説明](17c8b908eed2db57eaf5410bea228652.jpeg)
30
14
 
31
15
 
32
16
 
33
17
  ```hpp
34
18
 
35
- // Block.hpp
36
-
37
- #ifndef BLOCK__HPP_
38
-
39
- #define BLOCK__HPP_
40
-
41
-
42
-
43
- #include "MapChip.hpp"///////////////////////////////////////////
44
-
45
- #include "../LoadTexture.hpp"////////////////////////////////////
46
-
47
- #include "../Actor_2D.hpp"///////////////////////////////////////
48
-
49
-
50
-
51
-
52
-
53
- #include <array>
19
+ #include "../Collision.hpp"
20
+
21
+ #include "../Actor_2D.hpp"
22
+
23
+ #include "../Sprite.hpp"
24
+
25
+ ```
26
+
27
+
28
+
29
+
30
+
31
+
32
+
33
+ ```.hpp
34
+
35
+ // MapChip.hpp
36
+
37
+ #define ___MAPCHIP_HPP_
38
+
39
+
40
+
41
+ #include <iostream>
42
+
43
+ #include "glm/glm.hpp"
44
+
45
+
46
+
47
+ // 自作 関係
48
+
49
+ #include "../LoadTexture.hpp"
50
+
51
+ #include "../Collision.hpp"
52
+
53
+ #include "../Actor_2D.hpp"
54
+
55
+ #include "../Sprite.hpp"
56
+
57
+
58
+
59
+
60
+
61
+
62
+
63
+ /*####################################################
64
+
65
+ * マップチップ 描画クラス
66
+
67
+ ######################################################*/
68
+
69
+
70
+
71
+ class Sprite;
72
+
73
+ struct TextureData;
74
+
75
+
76
+
77
+ class MapChip : public Actor_2D
78
+
79
+ {
80
+
81
+ public:
82
+
83
+ MapChip(Entry* e, std::shared_ptr<TextureData> data, glm::ivec2 pos, TextureUV size, bool col); //
84
+
85
+ MapChip(); //
86
+
87
+ MapChip(const MapChip& m); //
88
+
89
+ ~MapChip(); //
90
+
91
+
92
+
93
+ void Update() override;
94
+
95
+ void Draw() override;
96
+
97
+
98
+
99
+ Box_Collision_2D mCol;
100
+
101
+
102
+
103
+ private:
104
+
105
+
106
+
107
+ std::shared_ptr<Sprite> mSprite;
108
+
109
+ std::shared_ptr<TextureData> Data;
110
+
111
+
112
+
113
+ TextureUV UV;
114
+
115
+ glm::ivec2 colSize;
116
+
117
+
118
+
119
+
120
+
121
+ };
122
+
123
+ #endif
124
+
125
+ ```
126
+
127
+
128
+
129
+ ```.hpp
130
+
131
+ //Block.hpp
132
+
133
+
134
+
135
+ #ifndef ___BLOCK_HPP
136
+
137
+ #define ___BLOCK_HPP
138
+
139
+
140
+
141
+ #include "../Actor_2D.hpp"
142
+
143
+ #include "../Entry.hpp"
144
+
145
+ #include "../LoadTexture.hpp"
146
+
147
+ #include "MapChip.hpp"
148
+
149
+
150
+
151
+
152
+
153
+ class Block : public Actor_2D
154
+
155
+ {
156
+
157
+ public:
158
+
159
+ Block(Entry* e, std::shared_ptr<TextureData> data, TextureUV uv, glm::ivec2 pos);
160
+
161
+ ~Block();
162
+
163
+
164
+
165
+ void Update() override;
166
+
167
+ void Draw() override;
168
+
169
+
170
+
171
+ std::vector<MapChip> block;
172
+
173
+
174
+
175
+ };
176
+
177
+
178
+
179
+
180
+
181
+ #endif
182
+
183
+
184
+
185
+ ```
186
+
187
+
188
+
189
+
190
+
191
+
192
+
193
+ ```.hpp
194
+
195
+ //Stage.hpp
196
+
197
+
198
+
199
+ #ifndef ___STAGE_HPP_
200
+
201
+ #define ___STAGE_HPP_
202
+
203
+
204
+
205
+
206
+
207
+ #include <glm/glm.hpp>
208
+
209
+ #include <iostream>
54
210
 
55
211
  #include <vector>
56
212
 
213
+
214
+
215
+ #include "Block.hpp"
216
+
217
+
218
+
219
+ class Stage
220
+
221
+ {
222
+
223
+ public:
224
+
225
+
226
+
227
+ Stage(Entry * e); //コンストラクタ
228
+
229
+ ~Stage(); //デストラクタ
230
+
231
+
232
+
233
+ void Update();
234
+
235
+ void Draw();
236
+
237
+
238
+
239
+
240
+
241
+ private:
242
+
243
+
244
+
245
+
246
+
247
+ std::vector<Block> block;
248
+
249
+
250
+
251
+ class Entry* Owner;
252
+
253
+
254
+
255
+ };
256
+
257
+
258
+
259
+
260
+
261
+ #endif
262
+
263
+
264
+
265
+ ```
266
+
267
+
268
+
269
+
270
+
271
+ ```hpp
272
+
273
+ //LoadTexture.hpp
274
+
275
+ #ifndef ___TEXTURE_HPP_
276
+
277
+ #define ___TEXTURE_HPP_
278
+
279
+
280
+
281
+ #include "Entry.hpp"
282
+
283
+ #include "glm/glm.hpp"
284
+
285
+
286
+
287
+ typedef unsigned char Byte; // Byte
288
+
289
+
290
+
291
+ #include <vector>
292
+
57
293
  #include <iostream>
58
294
 
59
295
 
60
296
 
297
+
298
+
299
+ // 描画UV座標を指定
300
+
301
+
302
+
303
+ typedef struct TextureUV
304
+
305
+ {
306
+
307
+ glm::vec2 start;
308
+
309
+ glm::vec2 end;
310
+
311
+
312
+
313
+ }TextureUV;
314
+
315
+
316
+
317
+ // テクスチャデータ
318
+
319
+ typedef struct TextureData
320
+
321
+ {
322
+
323
+ std::shared_ptr<std::vector<Byte>> mData; //画像データ
324
+
325
+ glm::ivec2 mSize; //サイズ
326
+
327
+ int channels; //チャンネル数
328
+
329
+ }TextureData;
330
+
331
+
332
+
333
+
334
+
335
+ //画像ファイルのバイナリを返す。 
336
+
337
+ std::shared_ptr<TextureData> LoadTexture(const char* FileName);
338
+
339
+
340
+
341
+
342
+
343
+ int getTextureChannel(const char* str);
344
+
345
+ glm::vec4 getRGBAColor(int r, int g, int b, int a);
346
+
347
+
348
+
349
+
350
+
351
+
352
+
353
+ #endif
354
+
355
+
356
+
357
+ ```
358
+
359
+
360
+
361
+ ```.hpp
362
+
363
+ //Entry.hpp
364
+
365
+ #ifndef ___ENTRY_H_
366
+
367
+ #define ___ENTRY_H_
368
+
369
+
370
+
371
+ #define SCREEN_WIDTH ((float)(16.0f * 60.0f)) //画面の横
372
+
373
+ #define SCREEN_HEIGHT ((float)(9.0f * 60.0f)) //画面の縦
374
+
375
+ #define PI ((float)3.14159265359f) //円周率
376
+
377
+
378
+
379
+
380
+
381
+ //自作ヘッダー 関係
382
+
383
+ #include "Camera.hpp"
384
+
385
+ #include "Text.hpp"
386
+
387
+ #include "Sprite.hpp"
388
+
389
+ #include "Input.hpp"
390
+
391
+ //#include "Sound.hpp"
392
+
393
+ //#include "LoadTexture.hpp"
394
+
395
+ //#include "Rectangle.hpp"
396
+
397
+ //#include "Circle.hpp"
398
+
399
+ #include "Actor_2D.hpp"
400
+
401
+
402
+
403
+ // テスト 関係
404
+
405
+ #include "../Header/Game/Scene.hpp"
406
+
407
+
408
+
409
+
410
+
411
+
412
+
413
+
414
+
415
+
416
+
417
+
418
+
419
+ //標準ヘッダー関係
420
+
421
+ #include "stdio.h"
422
+
423
+ #include <iostream>
424
+
61
- class Block : Actor_2D{
425
+ #include <vector>
426
+
427
+ #include <time.h>
428
+
429
+ #include <random>
430
+
431
+
432
+
433
+ //OpenGL関係
434
+
435
+ #include <GLEW/include/GL/glew.h>
436
+
437
+ #include <gl/GL.h>
438
+
439
+ #include <GLFW/include/GLFW/glfw3.h>
440
+
441
+
442
+
443
+ //OpenAL関係
444
+
445
+ #include <OpenAL/include/al.h>
446
+
447
+ #include <OpenAL/include/alc.h>
448
+
449
+
450
+
451
+ //OpenCV 関係
452
+
453
+ #include <opencv2/opencv.hpp>
454
+
455
+
456
+
457
+ //数学ライブラリ
458
+
459
+ #include "glm/ext.hpp"
460
+
461
+
462
+
463
+
464
+
465
+ /*###############################################################################################################
466
+
467
+ # GLmain 
468
+
469
+ #################################################################################################################*/
470
+
471
+
472
+
473
+ class Entry
474
+
475
+ {
62
476
 
63
477
 
64
478
 
65
479
  public:
66
480
 
67
- Block(Entry* e, glm::ivec2 pos, std::shared_ptr<TextureData> data, TextureUV uv, bool col);
481
+
68
-
482
+
69
- Block(const Block &b);
483
+ Entry(); //コンストラクタ
484
+
70
-
485
+ ~Entry(); //デスストラクタ
486
+
71
- Block& operator = (const Block& b);
487
+ bool Initialization(); //初期化
72
-
488
+
73
- ~Block();
489
+ bool RunLoop(); //メインループ
74
-
75
-
76
-
490
+
77
- void Update() override;
491
+ void Update(); //計算
78
-
492
+
79
- void Draw() override;
493
+ void GenerateOutput(); //描画
494
+
495
+
496
+
80
-
497
+ GLFWwindow* GL_Window = nullptr; //OpenGLコンテキスト
498
+
81
-
499
+ ALCdevice* AL_Device = nullptr; //デバイス
500
+
82
-
501
+ ALCcontext* AL_Context = nullptr; //コンテキスト
502
+
503
+
504
+
83
- private:
505
+ glm::ivec2 getWindowSize(); //画面サイズを取得
506
+
507
+
508
+
84
-
509
+ private: // ####################################################################################################################################################################
85
-
86
-
510
+
87
- std::vector<MapChip> mBlock;
511
+ std::unique_ptr<class Input> mInput;
512
+
513
+
514
+
515
+
516
+
517
+ std::unique_ptr<class Scene> scene; //
518
+
519
+
520
+
521
+
522
+
523
+
524
+
525
+ bool mIsRunLoop; //メインループ
526
+
527
+ void ExitEntryKey(); //ゲーム終了
88
528
 
89
529
  };
90
530
 
91
-
92
-
93
531
  #endif
94
532
 
95
533
  ```
96
-
97
-
98
-
99
- ```hpp
100
-
101
- //Actor_2D.hpp
102
-
103
-
104
-
105
- #ifndef ___ACTOR_HPP__
106
-
107
- #define ___ACTOR_HPP__
108
-
109
-
110
-
111
- #include "glm/glm.hpp"
112
-
113
-
114
-
115
- // 描画UV座標
116
-
117
- typedef struct DrawUV
118
-
119
- {
120
-
121
- glm::vec2 start; //ここから
122
-
123
- glm::vec2 end; //ここまで
124
-
125
-
126
-
127
- }DrawUV;
128
-
129
-
130
-
131
- class Actor_2D
132
-
133
- {
134
-
135
- public:
136
-
137
- Actor_2D(); //コンストラクタ
138
-
139
- ~Actor_2D(); //デストラクタ
140
-
141
-
142
-
143
- virtual void Update() = 0;
144
-
145
- virtual void Draw() = 0;
146
-
147
- protected:
148
-
149
-
150
-
151
- glm::ivec2 mPosition; //座標
152
-
153
- glm::ivec2 mScale; //スケール
154
-
155
- float mRadian; //回転
156
-
157
-
158
-
159
- glm::ivec2 mVector; //方向
160
-
161
-
162
-
163
- class Entry* Owner;
164
-
165
- private:
166
-
167
- };
168
-
169
-
170
-
171
- #endif
172
-
173
-
174
-
175
- ```
176
-
177
- ```hpp
178
-
179
- //LoadTexture.hpp
180
-
181
-
182
-
183
- #ifndef ___TEXTURE_HPP_
184
-
185
- #define ___TEXTURE_HPP_
186
-
187
-
188
-
189
- #include "Entry.hpp"
190
-
191
- #include "glm/glm.hpp"
192
-
193
-
194
-
195
- typedef unsigned char Byte; // Byte
196
-
197
-
198
-
199
- #include <vector>
200
-
201
- #include <iostream>
202
-
203
-
204
-
205
-
206
-
207
- // 描画UV座標を指定
208
-
209
- struct TextureUV;
210
-
211
- typedef struct TextureUV
212
-
213
- {
214
-
215
- glm::vec2 start;
216
-
217
- glm::vec2 end;
218
-
219
-
220
-
221
- }TextureUV;
222
-
223
-
224
-
225
- // テクスチャデータ
226
-
227
- struct TextureData;
228
-
229
- typedef struct TextureData
230
-
231
- {
232
-
233
- std::shared_ptr<std::vector<Byte>> mData; //画像データ
234
-
235
- glm::ivec2 mSize; //サイズ
236
-
237
- int channels; //チャンネル数
238
-
239
- }TextureData;
240
-
241
-
242
-
243
-
244
-
245
- //画像ファイルのバイナリを返す。 
246
-
247
- std::shared_ptr<TextureData> LoadTexture(const char* FileName);
248
-
249
-
250
-
251
-
252
-
253
- int getTextureChannel(const char* str);
254
-
255
- glm::vec4 getRGBAColor(int r, int g, int b, int a);
256
-
257
-
258
-
259
-
260
-
261
-
262
-
263
- #endif
264
-
265
-
266
-
267
- ```
268
-
269
- ```hpp
270
-
271
- //MapChip.hpp
272
-
273
-
274
-
275
- #ifndef ___MAPCHIP_HPP_
276
-
277
- #define ___MAPCHIP_HPP_
278
-
279
- #include <iostream>
280
-
281
- #include "glm/glm.hpp"
282
-
283
-
284
-
285
-
286
-
287
- #include "../LoadTexture.hpp"
288
-
289
- #include "../Collision.hpp"
290
-
291
- #include "../Actor_2D.hpp"
292
-
293
- #include "../Sprite.hpp"
294
-
295
-
296
-
297
-
298
-
299
-
300
-
301
- /*####################################################
302
-
303
- * マップチップ 描画クラス
304
-
305
- ######################################################*/
306
-
307
- class MapChip : public Actor_2D
308
-
309
- {
310
-
311
- public:
312
-
313
- MapChip(Entry* e, std::shared_ptr<TextureData> data, glm::ivec2 pos, TextureUV size, bool col); //
314
-
315
- MapChip(); //
316
-
317
- MapChip(const MapChip& m); //
318
-
319
- ~MapChip(); //
320
-
321
-
322
-
323
- void Update() override;
324
-
325
- void Draw() override;
326
-
327
-
328
-
329
- Box_Collision_2D mCol;
330
-
331
-
332
-
333
-
334
-
335
- private:
336
-
337
-
338
-
339
- std::shared_ptr<Sprite> mSprite;
340
-
341
- std::shared_ptr<TextureData> Data;
342
-
343
-
344
-
345
- TextureUV UV;
346
-
347
- glm::ivec2 colSize;
348
-
349
-
350
-
351
-
352
-
353
- };
354
-
355
-
356
-
357
- #endif
358
-
359
-
360
-
361
-
362
-
363
- ```

6

提示コードを修正、文章も修正しました。

2021/02/04 03:57

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -1,10 +1,4 @@
1
- 提示コードですがコンパイルエラの以下のエラーが発生してしまいコイル出来ません、これはどうすればいいのでしょか?
1
+ 提示コードですがBlock.hppのード部で以下のエラーが発生します。**定義されいませんと表示されますがしっかり定義されいます**。インクルードされているのですがなぜでょうか?原因がどうしてもわかりせん。**イクルードでンクードされていないた確かめした。またインクルードカードも確認しました**がやはり原因がわかりませんどうすればいいのでしょか?
2
-
3
- 下記のコードでstruct TextureUVは定義済みなのですがなぜ未定義と表示されるのでしょうか?原因がわかりません。
4
-
5
- Sprite.hppはの載せましたが他は標準ヘッダーしかインクルードしてないので流石に関係ないと思います。
6
-
7
-
8
2
 
9
3
 
10
4
 
@@ -12,15 +6,271 @@
12
6
 
13
7
  エラー「 重大度レベル コード 説明 プロジェクト ファイル 行 抑制状態
14
8
 
15
- エラー C2079 'MapChip::UV' 未定義の struct 'TextureUV' で使用しています。 OpenGL C:\Users\yw325\Desktop\OpenGL\OpenGL\Header\Game\MapChip.hpp 37
9
+ エラー C2061 構文エラー: 識別子 'TextureUV' OpenGL C:\Users\yw325\Desktop\OpenGL\OpenGL\Header\Game\Block.hpp 22
16
10
 
17
11
   」
18
12
 
19
13
 
20
14
 
15
+ エラー「 重大度レベル コード 説明 プロジェクト ファイル 行 抑制状態
16
+
17
+ エラー C2065 'MapChip': 定義されていない識別子です。 OpenGL C:\Users\yw325\Desktop\OpenGL\OpenGL\Header\Game\Block.hpp 32
18
+
19
+  」
20
+
21
+
22
+
23
+ エラー「 重大度レベル コード 説明 プロジェクト ファイル 行 抑制状態
24
+
25
+ エラー C2065 'Sprite': 定義されていない識別子です。 OpenGL C:\Users\yw325\Desktop\OpenGL\OpenGL\Header\Game\MapChip.hpp 33
26
+
27
+  」
28
+
29
+
30
+
31
+
32
+
21
33
  ```hpp
22
34
 
35
+ // Block.hpp
36
+
37
+ #ifndef BLOCK__HPP_
38
+
39
+ #define BLOCK__HPP_
40
+
41
+
42
+
43
+ #include "MapChip.hpp"///////////////////////////////////////////
44
+
45
+ #include "../LoadTexture.hpp"////////////////////////////////////
46
+
47
+ #include "../Actor_2D.hpp"///////////////////////////////////////
48
+
49
+
50
+
51
+
52
+
53
+ #include <array>
54
+
55
+ #include <vector>
56
+
57
+ #include <iostream>
58
+
59
+
60
+
61
+ class Block : Actor_2D{
62
+
63
+
64
+
65
+ public:
66
+
67
+ Block(Entry* e, glm::ivec2 pos, std::shared_ptr<TextureData> data, TextureUV uv, bool col);
68
+
69
+ Block(const Block &b);
70
+
71
+ Block& operator = (const Block& b);
72
+
73
+ ~Block();
74
+
75
+
76
+
77
+ void Update() override;
78
+
79
+ void Draw() override;
80
+
81
+
82
+
83
+ private:
84
+
85
+
86
+
87
+ std::vector<MapChip> mBlock;
88
+
89
+ };
90
+
91
+
92
+
93
+ #endif
94
+
95
+ ```
96
+
97
+
98
+
99
+ ```hpp
100
+
101
+ //Actor_2D.hpp
102
+
103
+
104
+
105
+ #ifndef ___ACTOR_HPP__
106
+
107
+ #define ___ACTOR_HPP__
108
+
109
+
110
+
111
+ #include "glm/glm.hpp"
112
+
113
+
114
+
115
+ // 描画UV座標
116
+
117
+ typedef struct DrawUV
118
+
119
+ {
120
+
121
+ glm::vec2 start; //ここから
122
+
123
+ glm::vec2 end; //ここまで
124
+
125
+
126
+
127
+ }DrawUV;
128
+
129
+
130
+
131
+ class Actor_2D
132
+
133
+ {
134
+
135
+ public:
136
+
137
+ Actor_2D(); //コンストラクタ
138
+
139
+ ~Actor_2D(); //デストラクタ
140
+
141
+
142
+
143
+ virtual void Update() = 0;
144
+
145
+ virtual void Draw() = 0;
146
+
147
+ protected:
148
+
149
+
150
+
151
+ glm::ivec2 mPosition; //座標
152
+
153
+ glm::ivec2 mScale; //スケール
154
+
155
+ float mRadian; //回転
156
+
157
+
158
+
159
+ glm::ivec2 mVector; //方向
160
+
161
+
162
+
163
+ class Entry* Owner;
164
+
165
+ private:
166
+
167
+ };
168
+
169
+
170
+
171
+ #endif
172
+
173
+
174
+
175
+ ```
176
+
177
+ ```hpp
178
+
179
+ //LoadTexture.hpp
180
+
181
+
182
+
183
+ #ifndef ___TEXTURE_HPP_
184
+
185
+ #define ___TEXTURE_HPP_
186
+
187
+
188
+
189
+ #include "Entry.hpp"
190
+
191
+ #include "glm/glm.hpp"
192
+
193
+
194
+
195
+ typedef unsigned char Byte; // Byte
196
+
197
+
198
+
199
+ #include <vector>
200
+
201
+ #include <iostream>
202
+
203
+
204
+
205
+
206
+
207
+ // 描画UV座標を指定
208
+
209
+ struct TextureUV;
210
+
211
+ typedef struct TextureUV
212
+
213
+ {
214
+
215
+ glm::vec2 start;
216
+
217
+ glm::vec2 end;
218
+
219
+
220
+
221
+ }TextureUV;
222
+
223
+
224
+
225
+ // テクスチャデータ
226
+
227
+ struct TextureData;
228
+
229
+ typedef struct TextureData
230
+
231
+ {
232
+
233
+ std::shared_ptr<std::vector<Byte>> mData; //画像データ
234
+
235
+ glm::ivec2 mSize; //サイズ
236
+
237
+ int channels; //チャンネル数
238
+
239
+ }TextureData;
240
+
241
+
242
+
243
+
244
+
245
+ //画像ファイルのバイナリを返す。 
246
+
247
+ std::shared_ptr<TextureData> LoadTexture(const char* FileName);
248
+
249
+
250
+
251
+
252
+
253
+ int getTextureChannel(const char* str);
254
+
255
+ glm::vec4 getRGBAColor(int r, int g, int b, int a);
256
+
257
+
258
+
259
+
260
+
261
+
262
+
263
+ #endif
264
+
265
+
266
+
267
+ ```
268
+
269
+ ```hpp
270
+
23
- //MapChip.cpp
271
+ //MapChip.hpp
272
+
273
+
24
274
 
25
275
  #ifndef ___MAPCHIP_HPP_
26
276
 
@@ -108,256 +358,6 @@
108
358
 
109
359
 
110
360
 
361
+
362
+
111
363
  ```
112
-
113
-
114
-
115
- ```hpp
116
-
117
- //LoadTexture.hpp
118
-
119
- #ifndef ___TEXTURE_HPP_
120
-
121
- #define ___TEXTURE_HPP_
122
-
123
-
124
-
125
- #include "Entry.hpp"
126
-
127
- #include "glm/glm.hpp"
128
-
129
-
130
-
131
- typedef unsigned char Byte; // Byte
132
-
133
-
134
-
135
- #include <vector>
136
-
137
- #include <iostream>
138
-
139
-
140
-
141
-
142
-
143
- // 描画UV座標を指定
144
-
145
- struct TextureUV;
146
-
147
- typedef struct TextureUV
148
-
149
- {
150
-
151
- glm::vec2 start;
152
-
153
- glm::vec2 end;
154
-
155
-
156
-
157
- }TextureUV;
158
-
159
-
160
-
161
- // テクスチャデータ
162
-
163
- struct TextureData;
164
-
165
- typedef struct TextureData
166
-
167
- {
168
-
169
- std::shared_ptr<std::vector<Byte>> mData; //画像データ
170
-
171
- glm::ivec2 mSize; //サイズ
172
-
173
- int channels; //チャンネル数
174
-
175
- }TextureData;
176
-
177
-
178
-
179
-
180
-
181
- //画像ファイルのバイナリを返す。 
182
-
183
- std::shared_ptr<TextureData> LoadTexture(const char* FileName);
184
-
185
-
186
-
187
-
188
-
189
- int getTextureChannel(const char* str);
190
-
191
- glm::vec4 getRGBAColor(int r, int g, int b, int a);
192
-
193
-
194
-
195
-
196
-
197
-
198
-
199
- #endif
200
-
201
-
202
-
203
- ```
204
-
205
-
206
-
207
-
208
-
209
- ```hpp
210
-
211
- //Sprite.hpp
212
-
213
- #ifndef ___SPRITE_HPP_
214
-
215
- #define ___SPRITE_HPP_
216
-
217
-
218
-
219
- //自作ヘッダー
220
-
221
- #include "Transform_2D.hpp"
222
-
223
- #include "Shader.hpp"
224
-
225
- #include "VertexData.hpp"
226
-
227
- #include "LoadTexture.hpp"
228
-
229
-
230
-
231
- //標準ヘッダー関係
232
-
233
- #include "stdio.h"
234
-
235
- #include <fstream>
236
-
237
- #include <sstream>
238
-
239
- #include <iostream>
240
-
241
- #include <vector>
242
-
243
- #include <crtdbg.h>
244
-
245
-
246
-
247
-
248
-
249
- //OpenGL関係
250
-
251
- #include "GLEW/include/GL/glew.h"
252
-
253
- #include "gl/GL.h"
254
-
255
- #include "GLFW/include/GLFW/glfw3.h"
256
-
257
-
258
-
259
- // OpenCV
260
-
261
- #include "opencv2/opencv.hpp"
262
-
263
-
264
-
265
- //数学ライブラリ
266
-
267
- #include "glm/ext.hpp"
268
-
269
- #include "glm/glm.hpp"
270
-
271
- //#include "Entry.hpp"
272
-
273
-
274
-
275
-
276
-
277
-
278
-
279
-
280
-
281
- /*###############################################################################################################
282
-
283
- # スプライト描画
284
-
285
- #################################################################################################################*/
286
-
287
-
288
-
289
- class Entry;
290
-
291
- struct TextureData;
292
-
293
- class Sprite : public Transform_2D
294
-
295
- {
296
-
297
- public:
298
-
299
-
300
-
301
- Sprite(class Entry* g, std::shared_ptr<TextureData> sp); //コンストラクタ
302
-
303
- ~Sprite(); //デストラクタ
304
-
305
- Sprite(const Sprite& sp); //コピーコンストラクタ
306
-
307
- void DrawGraph(glm::ivec2 pos,glm::vec2 start,glm::vec2 end); //
308
-
309
-
310
-
311
-
312
-
313
-
314
-
315
- glm::vec2 getSize();
316
-
317
-
318
-
319
- private:
320
-
321
-
322
-
323
-
324
-
325
- VertexAttribute_2D vertex[6]; //頂点データ
326
-
327
-
328
-
329
- class Entry* Entry; //Entry クラス
330
-
331
-
332
-
333
-
334
-
335
- glm::vec2 mPicSize; //画像サイズ
336
-
337
-
338
-
339
-
340
-
341
- //OpenGL 関係
342
-
343
- GLuint VAO;
344
-
345
- GLuint VBO;
346
-
347
- GLuint IBO;
348
-
349
- GLuint TextureID; //テクスチャID
350
-
351
-
352
-
353
- std::shared_ptr<class Shader> shader; //シェーダープログラム
354
-
355
- class Entry *Owner;//Entryクラス
356
-
357
- };
358
-
359
-
360
-
361
- #endif;
362
-
363
- ```

5

提示コードを修正しました。

2021/02/03 13:43

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -18,7 +18,7 @@
18
18
 
19
19
 
20
20
 
21
- ```cpp
21
+ ```hpp
22
22
 
23
23
  //MapChip.cpp
24
24
 

4

文章を修正しました。

2021/02/03 10:54

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -2,9 +2,7 @@
2
2
 
3
3
  下記のコードでstruct TextureUVは定義済みなのですがなぜ未定義と表示されるのでしょうか?原因がわかりません。
4
4
 
5
-
5
+ Sprite.hppはの載せましたが他は標準ヘッダーしかインクルードしてないので流石に関係ないと思います。
6
-
7
-
8
6
 
9
7
 
10
8
 
@@ -203,3 +201,163 @@
203
201
 
204
202
 
205
203
  ```
204
+
205
+
206
+
207
+
208
+
209
+ ```hpp
210
+
211
+ //Sprite.hpp
212
+
213
+ #ifndef ___SPRITE_HPP_
214
+
215
+ #define ___SPRITE_HPP_
216
+
217
+
218
+
219
+ //自作ヘッダー
220
+
221
+ #include "Transform_2D.hpp"
222
+
223
+ #include "Shader.hpp"
224
+
225
+ #include "VertexData.hpp"
226
+
227
+ #include "LoadTexture.hpp"
228
+
229
+
230
+
231
+ //標準ヘッダー関係
232
+
233
+ #include "stdio.h"
234
+
235
+ #include <fstream>
236
+
237
+ #include <sstream>
238
+
239
+ #include <iostream>
240
+
241
+ #include <vector>
242
+
243
+ #include <crtdbg.h>
244
+
245
+
246
+
247
+
248
+
249
+ //OpenGL関係
250
+
251
+ #include "GLEW/include/GL/glew.h"
252
+
253
+ #include "gl/GL.h"
254
+
255
+ #include "GLFW/include/GLFW/glfw3.h"
256
+
257
+
258
+
259
+ // OpenCV
260
+
261
+ #include "opencv2/opencv.hpp"
262
+
263
+
264
+
265
+ //数学ライブラリ
266
+
267
+ #include "glm/ext.hpp"
268
+
269
+ #include "glm/glm.hpp"
270
+
271
+ //#include "Entry.hpp"
272
+
273
+
274
+
275
+
276
+
277
+
278
+
279
+
280
+
281
+ /*###############################################################################################################
282
+
283
+ # スプライト描画
284
+
285
+ #################################################################################################################*/
286
+
287
+
288
+
289
+ class Entry;
290
+
291
+ struct TextureData;
292
+
293
+ class Sprite : public Transform_2D
294
+
295
+ {
296
+
297
+ public:
298
+
299
+
300
+
301
+ Sprite(class Entry* g, std::shared_ptr<TextureData> sp); //コンストラクタ
302
+
303
+ ~Sprite(); //デストラクタ
304
+
305
+ Sprite(const Sprite& sp); //コピーコンストラクタ
306
+
307
+ void DrawGraph(glm::ivec2 pos,glm::vec2 start,glm::vec2 end); //
308
+
309
+
310
+
311
+
312
+
313
+
314
+
315
+ glm::vec2 getSize();
316
+
317
+
318
+
319
+ private:
320
+
321
+
322
+
323
+
324
+
325
+ VertexAttribute_2D vertex[6]; //頂点データ
326
+
327
+
328
+
329
+ class Entry* Entry; //Entry クラス
330
+
331
+
332
+
333
+
334
+
335
+ glm::vec2 mPicSize; //画像サイズ
336
+
337
+
338
+
339
+
340
+
341
+ //OpenGL 関係
342
+
343
+ GLuint VAO;
344
+
345
+ GLuint VBO;
346
+
347
+ GLuint IBO;
348
+
349
+ GLuint TextureID; //テクスチャID
350
+
351
+
352
+
353
+ std::shared_ptr<class Shader> shader; //シェーダープログラム
354
+
355
+ class Entry *Owner;//Entryクラス
356
+
357
+ };
358
+
359
+
360
+
361
+ #endif;
362
+
363
+ ```

3

文章を編集しました。

2021/02/03 09:21

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -22,105 +22,179 @@
22
22
 
23
23
  ```cpp
24
24
 
25
+ //MapChip.cpp
26
+
25
27
  #ifndef ___MAPCHIP_HPP_
26
28
 
27
29
  #define ___MAPCHIP_HPP_
28
30
 
31
+ #include <iostream>
32
+
33
+ #include "glm/glm.hpp"
34
+
35
+
36
+
37
+
38
+
29
39
  #include "../LoadTexture.hpp"
30
40
 
31
-
41
+ #include "../Collision.hpp"
42
+
32
-
43
+ #include "../Actor_2D.hpp"
44
+
33
-
45
+ #include "../Sprite.hpp"
46
+
47
+
48
+
49
+
50
+
51
+
52
+
34
-
53
+ /*####################################################
54
+
55
+ * マップチップ 描画クラス
56
+
57
+ ######################################################*/
58
+
59
+ class MapChip : public Actor_2D
60
+
61
+ {
62
+
63
+ public:
64
+
65
+ MapChip(Entry* e, std::shared_ptr<TextureData> data, glm::ivec2 pos, TextureUV size, bool col); //
66
+
67
+ MapChip(); //
68
+
69
+ MapChip(const MapChip& m); //
70
+
71
+ ~MapChip(); //
72
+
73
+
74
+
75
+ void Update() override;
76
+
77
+ void Draw() override;
78
+
79
+
80
+
81
+ Box_Collision_2D mCol;
82
+
83
+
84
+
85
+
86
+
87
+ private:
88
+
89
+
90
+
91
+ std::shared_ptr<Sprite> mSprite;
92
+
93
+ std::shared_ptr<TextureData> Data;
94
+
95
+
96
+
97
+ TextureUV UV;
98
+
99
+ glm::ivec2 colSize;
100
+
101
+
102
+
103
+
104
+
105
+ };
106
+
107
+
108
+
109
+ #endif
110
+
111
+
112
+
113
+ ```
114
+
115
+
116
+
117
+ ```hpp
118
+
119
+ //LoadTexture.hpp
120
+
121
+ #ifndef ___TEXTURE_HPP_
122
+
123
+ #define ___TEXTURE_HPP_
124
+
125
+
126
+
35
- //#include "Scene.hpp"
127
+ #include "Entry.hpp"
36
128
 
37
129
  #include "glm/glm.hpp"
38
130
 
131
+
132
+
133
+ typedef unsigned char Byte; // Byte
134
+
135
+
136
+
137
+ #include <vector>
138
+
39
139
  #include <iostream>
40
140
 
41
141
 
42
142
 
43
- #include "../Collision.hpp"
143
+
44
-
45
- #include "../Actor_2D.hpp"
144
+
46
-
47
-
48
-
49
-
50
-
51
-
52
-
53
- // 前方宣言
145
+ // 描画UV座標を指定
54
-
55
- class Entry;
56
-
57
- class Sprite;
58
146
 
59
147
  struct TextureUV;
60
148
 
149
+ typedef struct TextureUV
150
+
151
+ {
152
+
153
+ glm::vec2 start;
154
+
155
+ glm::vec2 end;
156
+
157
+
158
+
159
+ }TextureUV;
160
+
161
+
162
+
163
+ // テクスチャデータ
164
+
61
165
  struct TextureData;
62
166
 
63
- class Box_Collision_2D;
64
-
65
-
66
-
67
- /*####################################################
68
-
69
- * マップチップ 描画クラス
70
-
71
- ######################################################*/
72
-
73
- class MapChip : public Actor_2D
167
+ typedef struct TextureData
74
168
 
75
169
  {
76
170
 
77
- public:
78
-
79
- MapChip(Entry* e, std::shared_ptr<TextureData> data, glm::ivec2 pos, TextureUV size, bool col); //
171
+ std::shared_ptr<std::vector<Byte>> mData; //画像データ
80
-
172
+
81
- MapChip(); //
173
+ glm::ivec2 mSize; //サイズ
82
-
83
- MapChip(const MapChip& m); //
174
+
84
-
85
- ~MapChip(); //
175
+ int channels; //チャンネル数
86
-
87
-
88
-
89
- void Update() override;
176
+
90
-
91
- void Draw() override;
92
-
93
-
94
-
95
- Box_Collision_2D mCol;
96
-
97
-
98
-
99
-
100
-
101
-
102
-
103
-
104
-
105
- private:
106
-
107
-
108
-
109
- std::shared_ptr<Sprite> mSprite;
110
-
111
- std::shared_ptr<TextureData> Data;
112
-
113
-
114
-
115
- TextureUV UV;
177
+ }TextureData;
178
+
179
+
180
+
181
+
182
+
116
-
183
+ //画像ファイルのバイナリを返す。 
184
+
185
+ std::shared_ptr<TextureData> LoadTexture(const char* FileName);
186
+
187
+
188
+
189
+
190
+
191
+ int getTextureChannel(const char* str);
192
+
117
- glm::ivec2 colSize;
193
+ glm::vec4 getRGBAColor(int r, int g, int b, int a);
118
-
119
-
120
-
121
-
122
-
123
- };
194
+
195
+
196
+
197
+
124
198
 
125
199
 
126
200
 
@@ -129,93 +203,3 @@
129
203
 
130
204
 
131
205
  ```
132
-
133
-
134
-
135
- ```cpp
136
-
137
- #ifndef ___TEXTURE_HPP_
138
-
139
- #define ___TEXTURE_HPP_
140
-
141
-
142
-
143
- #include "Entry.hpp"
144
-
145
- #include "glm/glm.hpp"
146
-
147
-
148
-
149
- typedef unsigned char Byte; // Byte
150
-
151
-
152
-
153
- #include <vector>
154
-
155
- #include <iostream>
156
-
157
-
158
-
159
-
160
-
161
- // 描画UV座標を指定
162
-
163
- struct TextureUV;
164
-
165
- typedef struct TextureUV
166
-
167
- {
168
-
169
- glm::vec2 start;
170
-
171
- glm::vec2 end;
172
-
173
-
174
-
175
- }TextureUV;
176
-
177
-
178
-
179
- // テクスチャデータ
180
-
181
- struct TextureData;
182
-
183
- typedef struct TextureData
184
-
185
- {
186
-
187
- std::shared_ptr<std::vector<Byte>> mData; //画像データ
188
-
189
- glm::ivec2 mSize; //サイズ
190
-
191
- int channels; //チャンネル数
192
-
193
- }TextureData;
194
-
195
-
196
-
197
-
198
-
199
- //画像ファイルのバイナリを返す。 
200
-
201
- std::shared_ptr<TextureData> LoadTexture(const char* FileName);
202
-
203
-
204
-
205
-
206
-
207
- int getTextureChannel(const char* str);
208
-
209
- glm::vec4 getRGBAColor(int r, int g, int b, int a);
210
-
211
-
212
-
213
-
214
-
215
-
216
-
217
- #endif
218
-
219
-
220
-
221
- ```

2

文章を修正しました。

2021/02/03 08:52

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -32,7 +32,7 @@
32
32
 
33
33
 
34
34
 
35
- #include "Scene.hpp"
35
+ //#include "Scene.hpp"
36
36
 
37
37
  #include "glm/glm.hpp"
38
38
 
@@ -128,8 +128,6 @@
128
128
 
129
129
 
130
130
 
131
-
132
-
133
131
  ```
134
132
 
135
133
 

1

文章を修正しました。

2021/02/03 08:13

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -26,6 +26,10 @@
26
26
 
27
27
  #define ___MAPCHIP_HPP_
28
28
 
29
+ #include "../LoadTexture.hpp"
30
+
31
+
32
+
29
33
 
30
34
 
31
35
  #include "Scene.hpp"
@@ -38,12 +42,14 @@
38
42
 
39
43
  #include "../Collision.hpp"
40
44
 
41
- #include "../LoadTexture.hpp"
42
-
43
45
  #include "../Actor_2D.hpp"
44
46
 
45
47
 
46
48
 
49
+
50
+
51
+
52
+
47
53
  // 前方宣言
48
54
 
49
55
  class Entry;
@@ -58,8 +64,6 @@
58
64
 
59
65
 
60
66
 
61
-
62
-
63
67
  /*####################################################
64
68
 
65
69
  * マップチップ 描画クラス
@@ -74,6 +78,10 @@
74
78
 
75
79
  MapChip(Entry* e, std::shared_ptr<TextureData> data, glm::ivec2 pos, TextureUV size, bool col); //
76
80
 
81
+ MapChip(); //
82
+
83
+ MapChip(const MapChip& m); //
84
+
77
85
  ~MapChip(); //
78
86
 
79
87
 
@@ -86,16 +94,28 @@
86
94
 
87
95
  Box_Collision_2D mCol;
88
96
 
97
+
98
+
99
+
100
+
101
+
102
+
103
+
104
+
105
+ private:
106
+
107
+
108
+
109
+ std::shared_ptr<Sprite> mSprite;
110
+
111
+ std::shared_ptr<TextureData> Data;
112
+
113
+
114
+
115
+ TextureUV UV;
116
+
89
117
  glm::ivec2 colSize;
90
118
 
91
- private:
92
-
93
-
94
-
95
- std::unique_ptr<Sprite> mSprite;
96
-
97
- TextureUV UV;
98
-
99
119
 
100
120
 
101
121
 
@@ -108,6 +128,8 @@
108
128
 
109
129
 
110
130
 
131
+
132
+
111
133
  ```
112
134
 
113
135