質問編集履歴

3

詳細を追加

2020/10/29 14:28

投稿

ozawa252521
ozawa252521

スコア7

test CHANGED
File without changes
test CHANGED
@@ -18,19 +18,29 @@
18
18
 
19
19
  と説明されていたので
20
20
 
21
- main.cpp に char g_count; と追加し
21
+ main.cpp に int g_count; と追加し
22
-
22
+
23
- define.h に extern char g_count; と追加したところ見たことないエラーが出てしまい色々試したのですが解決できません。
23
+ define.h に extern int g_count; と追加したところ見たことないエラーが出てしまい色々試したのですが解決できません。
24
24
 
25
25
  どなたか分かる方助けてほしいです。
26
26
 
27
27
 
28
28
 
29
+ 追記
30
+
31
+ あれからc言語の基礎など学んだりしたのですが未だに進めていません。
32
+
33
+ どなたか解決方法をお願いしたいです。
34
+
35
+
36
+
37
+
38
+
29
39
  エラーメッセージ
30
40
 
31
41
  ```
32
42
 
33
- >------ ビルド開始: プロジェクト: gamegame, 構成: Release Win32 ------
43
+ 1>------ ビルド開始: プロジェクト: gamegame, 構成: Release Win32 ------
34
44
 
35
45
  1>back.cpp
36
46
 
@@ -44,7 +54,7 @@
44
54
 
45
55
  1>player.cpp
46
56
 
47
- 1>control.obj : error LNK2001: 外部シンボル "char g_count" (?g_count@@3DA) は未解決です
57
+ 1>control.obj : error LNK2001: 外部シンボル "int g_count" (?g_count@@3HA) は未解決です
48
58
 
49
59
  1>C:\Users\rikua\source\repos\gamegame\Release\gamegame.exe : fatal error LNK1120: 1 件の未解決の外部参照
50
60
 
@@ -68,19 +78,17 @@
68
78
 
69
79
 
70
80
 
81
+
82
+
71
83
  //キー取得用配列
72
84
 
73
85
  char key[256];
74
86
 
75
- // 弾のカウント
76
-
77
- char g_count;
78
-
79
87
 
80
88
 
81
89
  // プログラムは WinMain から始まります
82
90
 
83
- int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
91
+ int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow )
84
92
 
85
93
  {
86
94
 
@@ -88,11 +96,11 @@
88
96
 
89
97
 
90
98
 
91
- if (DxLib_Init() == -1) // DXライブラリ初期化処理
99
+ if( DxLib_Init() == -1 ) // DXライブラリ初期化処理
92
100
 
93
101
  {
94
102
 
95
- return -1; // エラーが起きたら直ちに終了
103
+ return -1 ; // エラーが起きたら直ちに終了
96
104
 
97
105
  }
98
106
 
@@ -100,21 +108,21 @@
100
108
 
101
109
 
102
110
 
103
- CONTROL* control = new CONTROL;
111
+ CONTROL *control = new CONTROL;
104
-
105
-
106
-
107
-
108
-
109
-
110
-
112
+
113
+
114
+
115
+
116
+
117
+
118
+
111
- while (ScreenFlip() == 0 && ProcessMessage() == 0 && ClearDrawScreen() == 0 && GetHitKeyStateAll(key) == 0) {
119
+ while(ScreenFlip()==0 && ProcessMessage()==0 && ClearDrawScreen()==0 && GetHitKeyStateAll(key)==0){
112
-
113
-
120
+
121
+
114
122
 
115
123
  control->All();
116
124
 
117
-
125
+
118
126
 
119
127
  }
120
128
 
@@ -122,86 +130,380 @@
122
130
 
123
131
 
124
132
 
133
+ DxLib_End() ; // DXライブラリ使用の終了処理
134
+
135
+
136
+
137
+ return 0 ; // ソフトの終了
138
+
139
+ }
140
+
141
+ ```
142
+
143
+ define.h
144
+
145
+ ```
146
+
147
+
148
+
149
+ #include <windows.h>
150
+
151
+
152
+
153
+ //プレイヤーの歩くスピード
154
+
155
+ #define PLAYER_SPEED 5
156
+
157
+
158
+
159
+ #define MARGIN 10
160
+
161
+
162
+
163
+ //メッセージボックス
164
+
165
+ #define MSG(m) {\
166
+
167
+ MessageBox(NULL,m,"メッセージ",MB_OK);}
168
+
169
+
170
+
171
+ //extern宣言してkey配列にどこからでもアクセスできるようにする
172
+
173
+ extern char key[256];
174
+
175
+ extern int g_count;
176
+
125
177
 
126
178
 
127
179
 
128
180
 
129
181
 
130
182
 
131
-
132
-
133
- DxLib_End(); // DXライブラリ使用の終了処理
134
-
135
-
136
-
137
- return 0; // ソフトの終了
138
-
139
- }
140
-
141
- ```
142
-
143
- define.h
144
-
145
- ```
146
-
147
-
148
-
149
- #include <windows.h>
150
-
151
-
152
-
153
- //プレイヤーの歩くスピード
154
-
155
- #define PLAYER_SPEED 5
156
-
157
-
158
-
159
- #define MARGIN 10
160
-
161
-
162
-
163
- //メッセージボックス
164
-
165
- #define MSG(m) {\
166
-
167
- MessageBox(NULL,m,"メッセージ",MB_OK);}
168
-
169
-
170
-
171
- //extern宣言してkey配列にどこからでもアクセスできるようにする
172
-
173
- extern char key[256];
174
-
175
- extern char g_count;
183
+ #pragma once
184
+
185
+
186
+
187
+ #define PSHOT_NUM 20
188
+
189
+ #define PSHOT_SPEED 14
190
+
191
+ struct SHOT {
192
+
193
+ bool flag;//弾が発射中かどうか
194
+
195
+ double x;//x座標
196
+
197
+ double y;//y座標
198
+
199
+ int gh;//グラフィックハンドル
200
+
201
+ int width, height;//画像の幅と高さ
202
+
203
+ };
204
+
205
+
206
+
207
+
208
+
209
+
210
+
211
+ ```
212
+
213
+ enemy.cpp
214
+
215
+
216
+
217
+ ```
218
+
219
+ #include "pch.h"
220
+
221
+ #include "enemy.h"
222
+
223
+
224
+
225
+ ENEMY::ENEMY()
226
+
227
+ {
228
+
229
+ LoadDivGraph("enemy.png", 3, 1, 3, 27, 25, gh);
230
+
231
+
232
+
233
+ width = 27;
234
+
235
+ height = 25;
236
+
237
+
238
+
239
+ x = 50;
240
+
241
+ y = -50;
242
+
243
+
244
+
245
+ in_time = 180;
246
+
247
+
248
+
249
+ stop_time = 300;
250
+
251
+
252
+
253
+ out_time = 420;
254
+
255
+
256
+
257
+ count = 0;
258
+
259
+
260
+
261
+ endflag = false;
262
+
263
+
264
+
265
+ }
266
+
267
+
268
+
269
+
270
+
271
+ void ENEMY::Move()
272
+
273
+ {
274
+
275
+ //出てきてから止まる時間までの間なら下に移動
276
+
277
+ if (in_time < g_count && g_count < stop_time) {
278
+
279
+ y += 2;
280
+
281
+ //帰還時間を過ぎたら戻る。
282
+
283
+ }
284
+
285
+ else if (g_count > out_time) {
286
+
287
+ y -= 2;
288
+
289
+ if (y < -40) {
290
+
291
+ endflag = true;
292
+
293
+ }
294
+
295
+ }
296
+
297
+ }
298
+
299
+
300
+
301
+ void ENEMY::Draw()
302
+
303
+ {
304
+
305
+ int temp;
306
+
307
+
308
+
309
+ if (!endflag) {
310
+
311
+
312
+
313
+ temp = count % 40 / 10;
314
+
315
+ if (temp == 3)
316
+
317
+ temp = 1;
318
+
319
+
320
+
321
+ DrawGraph(x, y, gh[temp], TRUE);
322
+
323
+ }
324
+
325
+ }
326
+
327
+
328
+
329
+
330
+
331
+ bool ENEMY::All()
332
+
333
+ {
334
+
335
+ Move();
336
+
337
+
338
+
339
+ Draw();
340
+
341
+
342
+
343
+ ++count;
344
+
345
+
346
+
347
+ return endflag;
348
+
349
+ }
350
+
351
+
352
+
353
+ ```
354
+
355
+
356
+
357
+ enemy.h
358
+
359
+ ```
360
+
361
+ #include "pch.h"
362
+
363
+ class ENEMY {
364
+
365
+ private:
366
+
367
+ double x, y;
368
+
369
+ int gh[3];
370
+
371
+
372
+
373
+ int width, height;
374
+
375
+
376
+
377
+ int in_time, stop_time, out_time;
378
+
379
+
380
+
381
+ int count;
382
+
383
+
384
+
385
+ bool endflag;
386
+
387
+
388
+
389
+ public:
390
+
391
+ bool All();
392
+
393
+ void Move();
394
+
395
+ void Draw();
396
+
397
+ ENEMY();
398
+
399
+ };
400
+
401
+
402
+
403
+ ```
404
+
405
+ control.cpp
406
+
407
+ ```
408
+
409
+ #include "pch.h"
410
+
411
+ #include "control.h"
412
+
413
+
414
+
415
+
416
+
417
+ CONTROL::CONTROL()
418
+
419
+ {
420
+
421
+ //プレイヤークラスの生成
422
+
423
+ player = new PLAYER;
424
+
425
+
176
426
 
177
427
 
178
428
 
179
429
 
180
430
 
181
-
182
-
183
- #pragma once
431
+ back = new BACK;
432
+
433
+
434
+
184
-
435
+ }
185
-
186
-
436
+
437
+
438
+
187
- #define PSHOT_NUM 20
439
+ CONTROL::~CONTROL()
188
-
189
- #define PSHOT_SPEED 14
440
+
190
-
191
- struct SHOT {
441
+ {
192
-
193
- bool flag;//弾が発射中かどうか
442
+
194
-
195
- double x;//x座標
196
-
197
- double y;//y座標
198
-
199
- int gh;//フィックハンドル
443
+ //プレイヤークスの解放
200
-
444
+
201
- int width, height;//画像の幅と高さ
445
+ delete player;
202
-
446
+
447
+
448
+
449
+
450
+
451
+
452
+
203
- };
453
+ }
454
+
455
+
456
+
204
-
457
+ void CONTROL::All()
458
+
205
-
459
+ {
460
+
461
+
462
+
206
-
463
+ //描画領域を指定
464
+
465
+ SetDrawArea(MARGIN, MARGIN, MARGIN + 380, MARGIN + 460);
466
+
467
+
468
+
469
+ back->All();
470
+
471
+
472
+
473
+
474
+
475
+
476
+
477
+ player->All();
478
+
479
+
480
+
481
+
482
+
483
+ if (enemy != NULL) {
484
+
485
+ if (enemy->All()) {
486
+
487
+ delete enemy;
488
+
489
+ enemy = NULL;
490
+
491
+ }
492
+
493
+ }
494
+
495
+
496
+
497
+ ++g_count;
498
+
499
+ }
500
+
501
+
502
+
503
+
504
+
505
+
506
+
507
+ コード
508
+
207
- ```
509
+ ```

2

関係ないタグがあった

2020/10/29 14:28

投稿

ozawa252521
ozawa252521

スコア7

test CHANGED
File without changes
test CHANGED
File without changes

1

抜けていた文字を修正

2020/10/23 06:37

投稿

ozawa252521
ozawa252521

スコア7

test CHANGED
File without changes
test CHANGED
@@ -140,10 +140,6 @@
140
140
 
141
141
  ```
142
142
 
143
-
144
-
145
-
146
-
147
143
  define.h
148
144
 
149
145
  ```