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

質問編集履歴

3

詳細を追加

2020/10/29 14:28

投稿

ozawa252521
ozawa252521

スコア7

title CHANGED
File without changes
body CHANGED
@@ -8,20 +8,25 @@
8
8
  これはmain.cppでグローバル変数として定義し、define.hでextern宣言して共有できるようにしています。』
9
9
 
10
10
  と説明されていたので
11
- main.cpp に char g_count; と追加し
11
+ main.cpp に int g_count; と追加し
12
- define.h に extern char g_count; と追加したところ見たことないエラーが出てしまい色々試したのですが解決できません。
12
+ define.h に extern int g_count; と追加したところ見たことないエラーが出てしまい色々試したのですが解決できません。
13
13
  どなたか分かる方助けてほしいです。
14
14
 
15
+ 追記
16
+ あれからc言語の基礎など学んだりしたのですが未だに進めていません。
17
+ どなたか解決方法をお願いしたいです。
18
+
19
+
15
20
  エラーメッセージ
16
21
  ```
17
- >------ ビルド開始: プロジェクト: gamegame, 構成: Release Win32 ------
22
+ 1>------ ビルド開始: プロジェクト: gamegame, 構成: Release Win32 ------
18
23
  1>back.cpp
19
24
  1>control.cpp
20
25
  1>enemy.cpp
21
26
  1>main.cpp
22
27
  1>pch.cpp
23
28
  1>player.cpp
24
- 1>control.obj : error LNK2001: 外部シンボル "char g_count" (?g_count@@3DA) は未解決です
29
+ 1>control.obj : error LNK2001: 外部シンボル "int g_count" (?g_count@@3HA) は未解決です
25
30
  1>C:\Users\rikua\source\repos\gamegame\Release\gamegame.exe : fatal error LNK1120: 1 件の未解決の外部参照
26
31
  1>プロジェクト "gamegame.vcxproj" のビルドが終了しました -- 失敗。
27
32
  ========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========
@@ -33,40 +38,35 @@
33
38
  #include "control.h"
34
39
 
35
40
 
41
+
36
42
  //キー取得用配列
37
43
  char key[256];
38
- // 弾のカウント
39
- char g_count;
40
44
 
41
45
  // プログラムは WinMain から始まります
42
- int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
46
+ int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow )
43
47
  {
44
48
  ChangeWindowMode(TRUE);
45
49
 
46
- if (DxLib_Init() == -1) // DXライブラリ初期化処理
50
+ if( DxLib_Init() == -1 ) // DXライブラリ初期化処理
47
51
  {
48
- return -1; // エラーが起きたら直ちに終了
52
+ return -1 ; // エラーが起きたら直ちに終了
49
53
  }
50
54
 
51
55
 
52
- CONTROL* control = new CONTROL;
56
+ CONTROL *control = new CONTROL;
53
57
 
58
+
54
59
 
55
-
56
- while (ScreenFlip() == 0 && ProcessMessage() == 0 && ClearDrawScreen() == 0 && GetHitKeyStateAll(key) == 0) {
60
+ while(ScreenFlip()==0 && ProcessMessage()==0 && ClearDrawScreen()==0 && GetHitKeyStateAll(key)==0){
57
-
61
+
58
62
  control->All();
59
-
63
+
60
64
  }
61
65
 
62
66
 
63
-
67
+ DxLib_End() ; // DXライブラリ使用の終了処理
64
68
 
65
-
66
-
67
- DxLib_End(); // DXライブラリ使用の終了処理
68
-
69
- return 0; // ソフトの終了
69
+ return 0 ; // ソフトの終了
70
70
  }
71
71
  ```
72
72
  define.h
@@ -85,7 +85,7 @@
85
85
 
86
86
  //extern宣言してkey配列にどこからでもアクセスできるようにする
87
87
  extern char key[256];
88
- extern char g_count;
88
+ extern int g_count;
89
89
 
90
90
 
91
91
 
@@ -101,4 +101,155 @@
101
101
  int width, height;//画像の幅と高さ
102
102
  };
103
103
 
104
+
105
+
106
+ ```
107
+ enemy.cpp
108
+
109
+ ```
110
+ #include "pch.h"
111
+ #include "enemy.h"
112
+
113
+ ENEMY::ENEMY()
114
+ {
115
+ LoadDivGraph("enemy.png", 3, 1, 3, 27, 25, gh);
116
+
117
+ width = 27;
118
+ height = 25;
119
+
120
+ x = 50;
121
+ y = -50;
122
+
123
+ in_time = 180;
124
+
125
+ stop_time = 300;
126
+
127
+ out_time = 420;
128
+
129
+ count = 0;
130
+
131
+ endflag = false;
132
+
133
+ }
134
+
135
+
136
+ void ENEMY::Move()
137
+ {
138
+ //出てきてから止まる時間までの間なら下に移動
139
+ if (in_time < g_count && g_count < stop_time) {
140
+ y += 2;
141
+ //帰還時間を過ぎたら戻る。
142
+ }
143
+ else if (g_count > out_time) {
144
+ y -= 2;
145
+ if (y < -40) {
146
+ endflag = true;
147
+ }
148
+ }
149
+ }
150
+
151
+ void ENEMY::Draw()
152
+ {
153
+ int temp;
154
+
155
+ if (!endflag) {
156
+
157
+ temp = count % 40 / 10;
158
+ if (temp == 3)
159
+ temp = 1;
160
+
161
+ DrawGraph(x, y, gh[temp], TRUE);
162
+ }
163
+ }
164
+
165
+
166
+ bool ENEMY::All()
167
+ {
168
+ Move();
169
+
170
+ Draw();
171
+
172
+ ++count;
173
+
174
+ return endflag;
175
+ }
176
+
177
+ ```
178
+
179
+ enemy.h
180
+ ```
181
+ #include "pch.h"
182
+ class ENEMY {
183
+ private:
184
+ double x, y;
185
+ int gh[3];
186
+
187
+ int width, height;
188
+
189
+ int in_time, stop_time, out_time;
190
+
191
+ int count;
192
+
193
+ bool endflag;
194
+
195
+ public:
196
+ bool All();
197
+ void Move();
198
+ void Draw();
199
+ ENEMY();
200
+ };
201
+
202
+ ```
203
+ control.cpp
204
+ ```
205
+ #include "pch.h"
206
+ #include "control.h"
207
+
208
+
209
+ CONTROL::CONTROL()
210
+ {
211
+ //プレイヤークラスの生成
212
+ player = new PLAYER;
213
+
214
+
215
+
216
+ back = new BACK;
217
+
218
+ }
219
+
220
+ CONTROL::~CONTROL()
221
+ {
222
+ //プレイヤークラスの解放
223
+ delete player;
224
+
225
+
226
+
227
+ }
228
+
229
+ void CONTROL::All()
230
+ {
231
+
232
+ //描画領域を指定
233
+ SetDrawArea(MARGIN, MARGIN, MARGIN + 380, MARGIN + 460);
234
+
235
+ back->All();
236
+
237
+
238
+
239
+ player->All();
240
+
241
+
242
+ if (enemy != NULL) {
243
+ if (enemy->All()) {
244
+ delete enemy;
245
+ enemy = NULL;
246
+ }
247
+ }
248
+
249
+ ++g_count;
250
+ }
251
+
252
+
253
+
254
+ コード
104
255
  ```

2

関係ないタグがあった

2020/10/29 14:28

投稿

ozawa252521
ozawa252521

スコア7

title CHANGED
File without changes
body CHANGED
File without changes

1

抜けていた文字を修正

2020/10/23 06:37

投稿

ozawa252521
ozawa252521

スコア7

title CHANGED
File without changes
body CHANGED
@@ -69,8 +69,6 @@
69
69
  return 0; // ソフトの終了
70
70
  }
71
71
  ```
72
-
73
-
74
72
  define.h
75
73
  ```
76
74