質問編集履歴

5

文法の改善など

2020/07/27 09:18

投稿

nankotutv
nankotutv

スコア0

test CHANGED
File without changes
test CHANGED
@@ -18,7 +18,7 @@
18
18
 
19
19
  ###ここに質問の内容を詳しく書いてください。
20
20
 
21
- シューティングゲームを作っていて、ゲームタイトルの前に自分で作ったgifのロゴを出したいのですが、どこに何を入ばよい分かりません私はプログラミング初心者です。
21
+ シューティングゲームを作っていて、ゲームタイトルの前に自分で作ったgifのロゴを出したいのですが、gifが表示?されません。うすればよいですか。(gifを入れても真っ黒画面なります。
22
22
 
23
23
 
24
24
 
@@ -558,8 +558,4 @@
558
558
 
559
559
 
560
560
 
561
- プログラミング初心者です。
562
-
563
-
564
-
565
561
  visual studio 2019を使っています。

4

2020/07/27 09:18

投稿

nankotutv
nankotutv

スコア0

test CHANGED
File without changes
test CHANGED
@@ -4,6 +4,18 @@
4
4
 
5
5
 
6
6
 
7
+ 手順
8
+
9
+ 1.自作ロゴの表示  ←ここ
10
+
11
+ 2.ゲームタイトルの表示
12
+
13
+ 3.ボタンを押したらゲームスタート
14
+
15
+ 4.倒すかやられたらゲーム終了
16
+
17
+
18
+
7
19
  ###ここに質問の内容を詳しく書いてください。
8
20
 
9
21
  シューティングゲームを作っていて、ゲームタイトルの前に自分で作ったgifのロゴを出したいのですが、どこに何を入れればよいのか分かりません。ちなみに私はプログラミング初心者です。

3

2020/07/26 01:36

投稿

nankotutv
nankotutv

スコア0

test CHANGED
File without changes
test CHANGED
@@ -6,9 +6,7 @@
6
6
 
7
7
  ###ここに質問の内容を詳しく書いてください。
8
8
 
9
- シューティングゲームを作っていて、ゲームタイトルの前に自分で作ったgifのロゴを出したいのですが、どこに何を入れればよいのか分かりません。
9
+ シューティングゲームを作っていて、ゲームタイトルの前に自分で作ったgifのロゴを出したいのですが、どこに何を入れればよいのか分かりません。ちなみに私はプログラミング初心者です。
10
-
11
- どうすればよいですか?
12
10
 
13
11
 
14
12
 
@@ -540,7 +538,7 @@
540
538
 
541
539
 
542
540
 
543
- 色々じってもうまくいきません。
541
+ Lord Graphなどで読み込めると聞たのですが、上手くいきません。
544
542
 
545
543
 
546
544
 
@@ -548,4 +546,8 @@
548
546
 
549
547
 
550
548
 
549
+ プログラミング初心者です。
550
+
551
+
552
+
551
553
  visual studio 2019を使っています。

2

2020/07/26 01:11

投稿

nankotutv
nankotutv

スコア0

test CHANGED
File without changes
test CHANGED
@@ -24,6 +24,8 @@
24
24
 
25
25
 
26
26
 
27
+ ```ここに言語を入力
28
+
27
29
  include "DxLib.h" //Dxライブラリ
28
30
 
29
31
  include "Scene.h" //シーンヘッダ
@@ -530,6 +532,8 @@
530
532
 
531
533
  }
532
534
 
535
+ ```
536
+
533
537
 
534
538
 
535
539
  ### 試したこと

1

見にくさ改善

2020/07/26 01:06

投稿

nankotutv
nankotutv

スコア0

test CHANGED
File without changes
test CHANGED
@@ -20,17 +20,7 @@
20
20
 
21
21
  c++ ここに言語名を入力
22
22
 
23
- ソースコード
23
+
24
-
25
- /*
26
-
27
- メイン関数
28
-
29
- 作成日
30
-
31
- 作成者
32
-
33
- */
34
24
 
35
25
 
36
26
 
@@ -68,486 +58,480 @@
68
58
 
69
59
 
70
60
 
61
+
62
+
63
+ void setupCharactors(GameInformation * gi) {
64
+
65
+ //#プレイヤーの基本設定(変更されないもの)
66
+
67
+ //この他の設定はPrepare.cppへ書いてある
68
+
69
+ gi->player.image = LoadGraph("media\point_right.png"); //プレイヤーの画像
70
+
71
+ gi->player.full_health = 500; //プレイヤーのMAX HP
72
+
73
+ gi->player.matchless_interval = 10; //プレイヤーの無敵時間
74
+
75
+
76
+
77
+ //#プレイヤーの弾の基本設定(変更されないもの)
78
+
79
+ gi->player.bullet.image = LoadGraph("media\shell.png"); //弾の画像
80
+
81
+ gi->player.bullet.damage = 8;//20 //弾の強さ
82
+
83
+ gi->player.bullet.h = 11; //弾の当たり判定高さ
84
+
85
+ gi->player.bullet.w = 22; //弾の当たり判定幅
86
+
87
+ gi->player.bullet.speed = 20;//15 //弾のスピード
88
+
89
+ gi->player.bullet.interval = 2;//10 //弾の発射間隔
90
+
91
+
92
+
93
+ //#敵の弾の基本設定
94
+
95
+ gi->enemy_bullet[0].image = LoadGraph("media\shell2.png"); //弾の画像
96
+
97
+ gi->enemy_bullet[0].damage = 12; //弾の強さ
98
+
99
+ gi->enemy_bullet[0].h = 6; //当たり判定高さ
100
+
101
+ gi->enemy_bullet[0].w = 6; //当たり判定幅
102
+
103
+ gi->enemy_bullet[0].speed = 12; //弾のスピード
104
+
105
+ gi->enemy_bullet[1].image = LoadGraph("media\shell3.png"); //弾の画像
106
+
107
+ gi->enemy_bullet[1].damage = 84; //弾の強さ
108
+
109
+ gi->enemy_bullet[1].h = 20; //当たり判定高さ
110
+
111
+ gi->enemy_bullet[1].w = 20; //当たり判定幅
112
+
113
+ gi->enemy_bullet[1].speed = 5; //弾のスピード
114
+
115
+
116
+
117
+ //#敵1
118
+
119
+ gi->ens[0].health = 45, gi->ens[0].full_health = 45; //体力
120
+
121
+ gi->ens[0].image = LoadGraph("media\enemy01.png"); //画像
122
+
123
+ setMovement(gi->ens[0].movements, 0, 0, 0, 0); //登場のモーション設定(必要なし)
124
+
125
+ setMovement(gi->ens[0].movements, 1, -4, 0, 60); //移動のモーション設定
126
+
127
+ setMovement(gi->ens[0].movements, 2, 0, 2, 60);
128
+
129
+ setMovement(gi->ens[0].movements, 3, -4, 0, 60);
130
+
131
+ setMovement(gi->ens[0].movements, 4, 0, -2, 60);
132
+
133
+ gi->ens[0].movement_num = 5; //全モーション数
134
+
135
+ gi->ens[0].w = 100; //当たり判定の幅
136
+
137
+ gi->ens[0].h = 90; //当たり判定の高さ
138
+
139
+ gi->ens[0].bullet = gi->enemy_bullet[0]; //弾の設定をコピー
140
+
141
+ gi->ens[0].attack_interval = 100; //攻撃の間隔
142
+
143
+ gi->ens[0].canon_num = 1; //砲台の数
144
+
145
+ gi->ens[0].canons[0].x = 0; //砲台のX位置
146
+
147
+ gi->ens[0].canons[0].y = 0; //砲台のY位置
148
+
149
+
150
+
151
+ //#敵2
152
+
153
+ gi->ens[1].health = 5, gi->ens[1].full_health = 5;
154
+
155
+ gi->ens[1].image = LoadGraph("media\enemy02.png");
156
+
157
+ setMovement(gi->ens[1].movements, 0,-10, 0, 100);
158
+
159
+ setMovement(gi->ens[1].movements, 1, 0, 10, 30);
160
+
161
+ setMovement(gi->ens[1].movements, 2, 10, 0, 60);
162
+
163
+ setMovement(gi->ens[1].movements, 3, 0, -10, 30);
164
+
165
+ setMovement(gi->ens[1].movements, 4, -10, 0, 60);
166
+
167
+ gi->ens[1].movement_num = 5;
168
+
169
+ gi->ens[1].w = 80;
170
+
171
+ gi->ens[1].h = 42;
172
+
173
+ gi->ens[1].bullet = gi->enemy_bullet[0];
174
+
175
+ gi->ens[1].attack_interval = 50; //攻撃の間隔
176
+
177
+ gi->ens[1].canon_num = 1; //砲台の数
178
+
179
+ gi->ens[1].canons[0].x = 0; //砲台のX位置
180
+
181
+ gi->ens[1].canons[0].y = 0; //砲台のY位置
182
+
183
+
184
+
185
+ //#敵3
186
+
187
+ gi->ens[2].health = 400, gi->ens[2].full_health = 400;
188
+
189
+ gi->ens[2].image = LoadGraph("media\enemy03.png");
190
+
191
+ setMovement(gi->ens[2].movements, 0, -6, 0, 200);
192
+
193
+ setMovement(gi->ens[2].movements, 1, 0, -3, 60);
194
+
195
+ setMovement(gi->ens[2].movements, 2, 0, 3, 120);
196
+
197
+ setMovement(gi->ens[2].movements, 3, 0, -3, 60);
198
+
199
+ setMovement(gi->ens[2].movements, 4, -6, 0, 30);
200
+
201
+ setMovement(gi->ens[2].movements, 5, 6, 0, 30);
202
+
203
+ gi->ens[2].movement_num = 6;
204
+
205
+ gi->ens[2].w = 280;
206
+
207
+ gi->ens[2].h = 280;
208
+
209
+ gi->ens[2].bullet = gi->enemy_bullet[1];
210
+
211
+ gi->ens[2].attack_interval = 20; //攻撃の間隔
212
+
213
+ gi->ens[2].canon_num = 1; //砲台の数
214
+
215
+ gi->ens[2].canons[0].x = 0; //砲台のX位置
216
+
217
+ gi->ens[2].canons[0].y = 0; //砲台のY位置
218
+
219
+
220
+
221
+ //#敵4
222
+
223
+ gi->ens[3].health = 1900, gi->ens[3].full_health = 1900;
224
+
225
+ gi->ens[3].image = LoadGraph("media\enemy04.png");
226
+
227
+ setMovement(gi->ens[3].movements, 0, 0, 0, 0);
228
+
229
+ setMovement(gi->ens[3].movements, 1, -1, 0, 600);
230
+
231
+ setMovement(gi->ens[3].movements, 2, -2, 0, 300);
232
+
233
+ setMovement(gi->ens[3].movements, 3, -3, 0, 2000);
234
+
235
+ gi->ens[3].movement_num = 4;
236
+
237
+ gi->ens[3].w = 300;
238
+
239
+ gi->ens[3].h = 1080;
240
+
241
+ gi->ens[3].bullet = gi->enemy_bullet[0];
242
+
243
+ gi->ens[3].attack_interval = 8;
244
+
245
+ gi->ens[3].canons[0].x = -30;
246
+
247
+ gi->ens[3].canons[0].y = -450;
248
+
249
+ gi->ens[3].canons[1].x = -30;
250
+
251
+ gi->ens[3].canons[1].y = -180;
252
+
253
+ gi->ens[3].canons[2].x = -30;
254
+
255
+ gi->ens[3].canons[2].y = 180;
256
+
257
+ gi->ens[3].canons[3].x = -30;
258
+
259
+ gi->ens[3].canons[3].y = 450;
260
+
261
+ gi->ens[3].canon_num = 4;
262
+
263
+
264
+
265
+ //#敵の出現設定
266
+
267
+ int appear_settings[][4] = {
268
+
269
+ { 0,1950,100,20 },
270
+
271
+ { 0,1950,300,20 },
272
+
273
+ { 0,1950,500,20 },
274
+
275
+ { 0,1950,700,20 },
276
+
277
+ { 0,1950,100,100 },
278
+
279
+ { 0,1950,300,100 },
280
+
281
+ { 0,1950,500,100 },
282
+
283
+ { 0,1950,700,100 },
284
+
285
+ { 0,1950,100,180 },
286
+
287
+ { 0,1950,300,180 },//10
288
+
289
+ { 0,1950,500,180 },
290
+
291
+ { 0,1950,700,180 },
292
+
293
+ { 0,1950,100,260 },
294
+
295
+ { 0,1950,300,260 },
296
+
297
+ { 0,1950,500,260 },
298
+
299
+ { 0,1950,700,260 },
300
+
301
+ { 1,1950,100,350 },
302
+
303
+ { 1,1950,500,350 },
304
+
305
+ { 1,1950,300,450 },
306
+
307
+ { 1,1950,700,450 },//20
308
+
309
+ { 0,1950,100,550 },
310
+
311
+ { 0,1950,300,550 },
312
+
313
+ { 0,1950,500,550 },
314
+
315
+ { 0,1950,700,550 },
316
+
317
+ { 2,1950,540,800 },
318
+
319
+ { 2,1950,540,1200 },
320
+
321
+ { 1,1950,300,1400 },
322
+
323
+ { 1,1950,700,1400 },
324
+
325
+ { 2,1950,540,1600 },
326
+
327
+ { 2,1950,540,2000 },//30
328
+
329
+ { 3,2200,540,2500 },
330
+
331
+ };
332
+
333
+
334
+
335
+ setupAppearance(&gi->mobs, gi->ens, appear_settings, 31);
336
+
337
+ }
338
+
339
+
340
+
341
+
342
+
71
- /** setupCharactors関数
343
+ /** WinMain関数
72
-
344
+
73
- * 敵や自機の設定を行う
345
+ ゲームメイン関数
74
-
75
- * @param gi GameInformationのポインタ。ここへ設定を記述する
76
346
 
77
347
  */
78
348
 
79
- void setupCharactors(GameInformation * gi) {
80
-
81
- //#プレイヤーの基本設定(変更されないもの)
82
-
83
- //この他の設定はPrepare.cppへ書いてある
84
-
85
- gi->player.image = LoadGraph("media\point_right.png"); //プレイヤーの画像
86
-
87
- gi->player.full_health = 500; //プレイヤのMAX HP
88
-
89
- gi->player.matchless_interval = 10; //プレイヤーの無敵時間
90
-
91
-
92
-
93
- //#プレイヤーの弾の基本設定(変更されないもの)
94
-
95
- gi->player.bullet.image = LoadGraph("media\shell.png"); //弾の画像
96
-
97
- gi->player.bullet.damage = 8;//20 //弾強さ
98
-
99
- gi->player.bullet.h = 11; //弾の当たり判定高さ
100
-
101
- gi->player.bullet.w = 22; //当たり判定幅
102
-
103
- gi->player.bullet.speed = 20;//15 //弾のスピード
104
-
105
- gi->player.bullet.interval = 2;//10 //弾の発射間隔
106
-
107
-
108
-
109
- //#敵の弾の基本設定
110
-
111
- gi->enemy_bullet[0].image = LoadGraph("media\shell2.png"); //弾の画像
112
-
113
- gi->enemy_bullet[0].damage = 12; //強さ
114
-
115
- gi->enemy_bullet[0].h = 6; //当たり判定高さ
116
-
117
- gi->enemy_bullet[0].w = 6; //当たり判定幅
118
-
119
- gi->enemy_bullet[0].speed = 12; //弾のスピード
120
-
121
- gi->enemy_bullet[1].image = LoadGraph("media\shell3.png"); //弾の画像
122
-
123
- gi->enemy_bullet[1].damage = 84; //弾の強さ
124
-
125
- gi->enemy_bullet[1].h = 20; //当たり判定高さ
126
-
127
- gi->enemy_bullet[1].w = 20; //当たり判定幅
128
-
129
- gi->enemy_bullet[1].speed = 5; //弾のスピード
130
-
131
-
132
-
133
- //#敵1
134
-
135
- gi->ens[0].health = 45, gi->ens[0].full_health = 45; //体
136
-
137
- gi->ens[0].image = LoadGraph("media\enemy01.png"); //画像
138
-
139
- setMovement(gi->ens[0].movements, 0, 0, 0, 0); //登場のモーション設定(必要なし)
140
-
141
- setMovement(gi->ens[0].movements, 1, -4, 0, 60); //移動のモショ設定
142
-
143
- setMovement(gi->ens[0].movements, 2, 0, 2, 60);
144
-
145
- setMovement(gi->ens[0].movements, 3, -4, 0, 60);
146
-
147
- setMovement(gi->ens[0].movements, 4, 0, -2, 60);
148
-
149
- gi->ens[0].movement_num = 5; //全モショ
150
-
151
- gi->ens[0].w = 100; //当たり判定の幅
152
-
153
- gi->ens[0].h = 90; //当たり判定高さ
154
-
155
- gi->ens[0].bullet = gi->enemy_bullet[0]; //弾の設定をコピー
156
-
157
- gi->ens[0].attack_interval = 100; //攻撃の間隔
158
-
159
- gi->ens[0].canon_num = 1; //砲台の数
160
-
161
- gi->ens[0].canons[0].x = 0; //砲台のX位置
162
-
163
- gi->ens[0].canons[0].y = 0; //砲台のY位置
164
-
165
-
166
-
167
- //#敵2
168
-
169
- gi->ens[1].health = 5, gi->ens[1].full_health = 5;
170
-
171
- gi->ens[1].image = LoadGraph("media\enemy02.png");
172
-
173
- setMovement(gi->ens[1].movements, 0,-10, 0, 100);
174
-
175
- setMovement(gi->ens[1].movements, 1, 0, 10, 30);
176
-
177
- setMovement(gi->ens[1].movements, 2, 10, 0, 60);
178
-
179
- setMovement(gi->ens[1].movements, 3, 0, -10, 30);
180
-
181
- setMovement(gi->ens[1].movements, 4, -10, 0, 60);
182
-
183
- gi->ens[1].movement_num = 5;
184
-
185
- gi->ens[1].w = 80;
186
-
187
- gi->ens[1].h = 42;
188
-
189
- gi->ens[1].bullet = gi->enemy_bullet[0];
190
-
191
- gi->ens[1].attack_interval = 50; //攻撃の間隔
192
-
193
- gi->ens[1].canon_num = 1; //砲台の数
194
-
195
- gi->ens[1].canons[0].x = 0; //砲台X位置
196
-
197
- gi->ens[1].canons[0].y = 0; //砲台のY位置
198
-
199
-
200
-
201
- //#敵3
202
-
203
- gi->ens[2].health = 400, gi->ens[2].full_health = 400;
204
-
205
- gi->ens[2].image = LoadGraph("media\enemy03.png");
206
-
207
- setMovement(gi->ens[2].movements, 0, -6, 0, 200);
208
-
209
- setMovement(gi->ens[2].movements, 1, 0, -3, 60);
210
-
211
- setMovement(gi->ens[2].movements, 2, 0, 3, 120);
212
-
213
- setMovement(gi->ens[2].movements, 3, 0, -3, 60);
214
-
215
- setMovement(gi->ens[2].movements, 4, -6, 0, 30);
216
-
217
- setMovement(gi->ens[2].movements, 5, 6, 0, 30);
218
-
219
- gi->ens[2].movement_num = 6;
220
-
221
- gi->ens[2].w = 280;
222
-
223
- gi->ens[2].h = 280;
224
-
225
- gi->ens[2].bullet = gi->enemy_bullet[1];
226
-
227
- gi->ens[2].attack_interval = 20; //攻撃の間隔
228
-
229
- gi->ens[2].canon_num = 1; //砲台の数
230
-
231
- gi->ens[2].canons[0].x = 0; //砲台のX位置
232
-
233
- gi->ens[2].canons[0].y = 0; //砲台のY位置
234
-
235
-
236
-
237
- //#敵4
238
-
239
- gi->ens[3].health = 1900, gi->ens[3].full_health = 1900;
240
-
241
- gi->ens[3].image = LoadGraph("media\enemy04.png");
242
-
243
- setMovement(gi->ens[3].movements, 0, 0, 0, 0);
244
-
245
- setMovement(gi->ens[3].movements, 1, -1, 0, 600);
246
-
247
- setMovement(gi->ens[3].movements, 2, -2, 0, 300);
248
-
249
- setMovement(gi->ens[3].movements, 3, -3, 0, 2000);
250
-
251
- gi->ens[3].movement_num = 4;
252
-
253
- gi->ens[3].w = 300;
254
-
255
- gi->ens[3].h = 1080;
256
-
257
- gi->ens[3].bullet = gi->enemy_bullet[0];
258
-
259
- gi->ens[3].attack_interval = 8;
260
-
261
- gi->ens[3].canons[0].x = -30;
262
-
263
- gi->ens[3].canons[0].y = -450;
264
-
265
- gi->ens[3].canons[1].x = -30;
266
-
267
- gi->ens[3].canons[1].y = -180;
268
-
269
- gi->ens[3].canons[2].x = -30;
270
-
271
- gi->ens[3].canons[2].y = 180;
272
-
273
- gi->ens[3].canons[3].x = -30;
274
-
275
- gi->ens[3].canons[3].y = 450;
276
-
277
- gi->ens[3].canon_num = 4;
278
-
279
-
280
-
281
- //#敵の出現設定
282
-
283
- int appear_settings[][4] = {
284
-
285
- { 0,1950,100,20 },
286
-
287
- { 0,1950,300,20 },
288
-
289
- { 0,1950,500,20 },
290
-
291
- { 0,1950,700,20 },
292
-
293
- { 0,1950,100,100 },
294
-
295
- { 0,1950,300,100 },
296
-
297
- { 0,1950,500,100 },
298
-
299
- { 0,1950,700,100 },
300
-
301
- { 0,1950,100,180 },
302
-
303
- { 0,1950,300,180 },//10
304
-
305
- { 0,1950,500,180 },
306
-
307
- { 0,1950,700,180 },
308
-
309
- { 0,1950,100,260 },
310
-
311
- { 0,1950,300,260 },
312
-
313
- { 0,1950,500,260 },
314
-
315
- { 0,1950,700,260 },
316
-
317
- { 1,1950,100,350 },
318
-
319
- { 1,1950,500,350 },
320
-
321
- { 1,1950,300,450 },
322
-
323
- { 1,1950,700,450 },//20
324
-
325
- { 0,1950,100,550 },
326
-
327
- { 0,1950,300,550 },
328
-
329
- { 0,1950,500,550 },
330
-
331
- { 0,1950,700,550 },
332
-
333
- { 2,1950,540,800 },
334
-
335
- { 2,1950,540,1200 },
336
-
337
- { 1,1950,300,1400 },
338
-
339
- { 1,1950,700,1400 },
340
-
341
- { 2,1950,540,1600 },
342
-
343
- { 2,1950,540,2000 },//30
344
-
345
- { 3,2200,540,2500 },
346
-
347
- };
348
-
349
-
350
-
351
- setupAppearance(&gi->mobs, gi->ens, appear_settings, 31);
349
+ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
350
+
351
+ {
352
+
353
+ if (DxLib_Init() == -1) // DXライブラリ初期化処理
354
+
355
+ {
356
+
357
+ return -1; // エラが発生したら終了
358
+
359
+ }
360
+
361
+
362
+
363
+ PlayMovie("test.avi", 1, DX_MOVIEPLAYTYPE_NORMAL);
364
+
365
+
366
+
367
+ DxLib_End(); // DXライブラリ使用終了処理
368
+
369
+
370
+
371
+ return 0; // ソフト終了
372
+
373
+ }
374
+
375
+
376
+
377
+ //*** 起動前の初期化 ***
378
+
379
+ ChangeWindowMode(true); //ウィンドウモードで起動
380
+
381
+ SetWindowSize(1920, 1080); //1920x1080に設定
382
+
383
+ SetGraphMode(1920, 1080, 32); //1920x108032bitに設定
384
+
385
+ SetWindowText("楽しいシューティング"); //ウィンドウテキストを変更
386
+
387
+ SetWaitVSyncFlag(true); //垂直同期を使用(フレームレートによるスピード変動対策未実装)
388
+
389
+ SetAlwaysRunFlag(true); //裏画面に行っても動作継続
390
+
391
+
392
+
393
+
394
+
395
+ //*** 初期化 ***
396
+
397
+ if (DxLib_Init() == -1) return -1; //DxLibの初期化
398
+
399
+ SetMouseDispFlag(false);
400
+
401
+
402
+
403
+
404
+
405
+ //*** ゲーム本の初期化 ***
406
+
407
+ int scene_no = SCENE_TITLE; //シーン制御用の変数(Scene.hを参照)
408
+
409
+
410
+
411
+ GameInformation gi; //ーンをまたいで情報共有するための変数
412
+
413
+
414
+
415
+ gi.screen = MakeScreen(1920, 1080, false);
416
+
417
+
418
+
419
+ SetDrawScreen(gi.screen); //描写スクリーンを背景へ
420
+
421
+
422
+
423
+ //#リソース読み込み
424
+
425
+ gi.rs.background = LoadGraph("media\unnamed.jpg"); //背景画像
426
+
427
+ gi.rs.explosion_image = LoadGraph("media\explosion.png"); //爆発画像
428
+
429
+ gi.rs.explosion_sound = LoadSoundMem("media\bomb.mp3"); //爆発音声
430
+
431
+ gi.rs.shot_sound = LoadSoundMem("media\shot.mp3"); //発射音声
432
+
433
+ gi.rs.bgm = LoadSoundMem("media\fantasy13.mp3"); //BGM
434
+
435
+ ChangeVolumeSoundMem(200, gi.rs.bgm); //BGMの音量変更
436
+
437
+ gi.rs.damage_sound = LoadSoundMem("media\damage2.wav"); //ダメージ音声
438
+
439
+ gi.rs.damage_sound2 = LoadSoundMem("media\damage.wav"); //ダメージ音声(敵)
440
+
441
+ gi.rs.UI = LoadGraph("media\UI.png"); //UI画像
442
+
443
+ gi.rs.gameover = LoadGraph("media\gameover.png"); //ゲームオーバー文字
444
+
445
+ gi.rs.gameclear = LoadGraph("media\gameclear.png"); //ゲームクリアー文字
446
+
447
+ LoadDivGraph("media\numeric.png", 10, 10, 1, 80, 140, gi.rs.numeric); //数字フォント文字
448
+
449
+ gi.rs.danger_image = LoadGraph("media\danger.png");
450
+
451
+ gi.rs.danger_sound1 = LoadSoundMem("media\danger1.wav");
452
+
453
+ gi.rs.danger_sound2 = LoadSoundMem("media\danger2.wav");
454
+
455
+ gi.rs.gameclear_sound = LoadSoundMem("media\gameclear.mp3");
456
+
457
+ gi.rs.gameover_sound = LoadSoundMem("media\gameover.mp3");
458
+
459
+ gi.rs.decision = LoadSoundMem("media\decision14.wav");
460
+
461
+
462
+
463
+
464
+
465
+ //#キャラクター基本設定
466
+
467
+ setupCharactors(&gi);
468
+
469
+
470
+
471
+
472
+
473
+
474
+
475
+ //*** メインループ ***
476
+
477
+ //scene_noがSHUTDOWNならループを抜ける
478
+
479
+ //それぞれのsceneの戻り値を取得し、それに応じてシーン制御する。
480
+
481
+ while (ProcessMessage() == 0 && scene_no != SCENE_SHUTDONW) {
482
+
483
+ switch (scene_no) {
484
+
485
+ case SCENE_TITLE: //タイトル
486
+
487
+ scene_no = TitleScene(&gi);
488
+
489
+ break;
490
+
491
+ case SCENE_PREPARE_GAME: //ゲーム前
492
+
493
+ scene_no = PrepareScene(&gi);
494
+
495
+ break;
496
+
497
+ case SCENE_GAME: //ゲーム中
498
+
499
+ scene_no = GameScene(&gi);
500
+
501
+ break;
502
+
503
+ case SCENE_RESULT: //ゲーム結果
504
+
505
+ scene_no = GameResultScene(&gi);
506
+
507
+ break;
508
+
509
+ default: //バグか何かでいずれでもない時
510
+
511
+ scene_no = SCENE_SHUTDONW; //無限ループを避けるため終了
512
+
513
+ break;
514
+
515
+ }
516
+
517
+
518
+
519
+ }
520
+
521
+
522
+
523
+ //*** 終了処理 ***
524
+
525
+ DxLib_End();
526
+
527
+
528
+
529
+ return 0;
352
530
 
353
531
  }
354
532
 
355
533
 
356
534
 
357
-
358
-
359
- /** WinMain関数
360
-
361
- * ゲームメイン関数
362
-
363
- */
364
-
365
- int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
366
-
367
- {
368
-
369
- if (DxLib_Init() == -1) // DXライブラリ初期化処理
370
-
371
- {
372
-
373
- return -1; // エラーが発生したら終了
374
-
375
- }
376
-
377
-
378
-
379
- PlayMovie("test.avi", 1, DX_MOVIEPLAYTYPE_NORMAL);
380
-
381
-
382
-
383
- DxLib_End(); // DXライブラリ使用の終了処理
384
-
385
-
386
-
387
- return 0; // ソフトの終了
388
-
389
- }
390
-
391
-
392
-
393
- //*** 起動前の初期化 ***
394
-
395
- ChangeWindowMode(true); //ウィンドウモードで起動
396
-
397
- SetWindowSize(1920, 1080); //1920x1080に設定
398
-
399
- SetGraphMode(1920, 1080, 32); //1920x1080の32bitに設定
400
-
401
- SetWindowText("楽しいシューティング"); //ウィンドウテキストを変更
402
-
403
- SetWaitVSyncFlag(true); //垂直同期を使用(フレームレートによるスピード変動対策未実装)
404
-
405
- SetAlwaysRunFlag(true); //裏画面に行っても動作継続
406
-
407
-
408
-
409
-
410
-
411
- //*** 初期化 ***
412
-
413
- if (DxLib_Init() == -1) return -1; //DxLibの初期化
414
-
415
- SetMouseDispFlag(false);
416
-
417
-
418
-
419
-
420
-
421
- //*** ゲーム本体の初期化 ***
422
-
423
- int scene_no = SCENE_TITLE; //シーン制御用の変数(Scene.hを参照)
424
-
425
-
426
-
427
- GameInformation gi; //シーンをまたいで情報共有するための変数
428
-
429
-
430
-
431
- gi.screen = MakeScreen(1920, 1080, false);
432
-
433
-
434
-
435
- SetDrawScreen(gi.screen); //描写スクリーンを背景へ
436
-
437
-
438
-
439
- //#リソースの読み込み
440
-
441
- gi.rs.background = LoadGraph("media\unnamed.jpg"); //背景画像
442
-
443
- gi.rs.explosion_image = LoadGraph("media\explosion.png"); //爆発画像
444
-
445
- gi.rs.explosion_sound = LoadSoundMem("media\bomb.mp3"); //爆発音声
446
-
447
- gi.rs.shot_sound = LoadSoundMem("media\shot.mp3"); //発射音声
448
-
449
- gi.rs.bgm = LoadSoundMem("media\fantasy13.mp3"); //BGM
450
-
451
- ChangeVolumeSoundMem(200, gi.rs.bgm); //BGMの音量変更
452
-
453
- gi.rs.damage_sound = LoadSoundMem("media\damage2.wav"); //ダメージ音声
454
-
455
- gi.rs.damage_sound2 = LoadSoundMem("media\damage.wav"); //ダメージ音声(敵)
456
-
457
- gi.rs.UI = LoadGraph("media\UI.png"); //UI画像
458
-
459
- gi.rs.gameover = LoadGraph("media\gameover.png"); //ゲームオーバー文字
460
-
461
- gi.rs.gameclear = LoadGraph("media\gameclear.png"); //ゲームクリアー文字
462
-
463
- LoadDivGraph("media\numeric.png", 10, 10, 1, 80, 140, gi.rs.numeric); //数字フォント文字
464
-
465
- gi.rs.danger_image = LoadGraph("media\danger.png");
466
-
467
- gi.rs.danger_sound1 = LoadSoundMem("media\danger1.wav");
468
-
469
- gi.rs.danger_sound2 = LoadSoundMem("media\danger2.wav");
470
-
471
- gi.rs.gameclear_sound = LoadSoundMem("media\gameclear.mp3");
472
-
473
- gi.rs.gameover_sound = LoadSoundMem("media\gameover.mp3");
474
-
475
- gi.rs.decision = LoadSoundMem("media\decision14.wav");
476
-
477
-
478
-
479
-
480
-
481
- //#キャラクターの基本設定
482
-
483
- setupCharactors(&gi);
484
-
485
-
486
-
487
-
488
-
489
-
490
-
491
- //*** メインループ ***
492
-
493
- //scene_noがSHUTDOWNならループを抜ける
494
-
495
- //それぞれのsceneの戻り値を取得し、それに応じてシーン制御する。
496
-
497
- while (ProcessMessage() == 0 && scene_no != SCENE_SHUTDONW) {
498
-
499
- switch (scene_no) {
500
-
501
- case SCENE_TITLE: //タイトル
502
-
503
- scene_no = TitleScene(&gi);
504
-
505
- break;
506
-
507
- case SCENE_PREPARE_GAME: //ゲーム前
508
-
509
- scene_no = PrepareScene(&gi);
510
-
511
- break;
512
-
513
- case SCENE_GAME: //ゲーム中
514
-
515
- scene_no = GameScene(&gi);
516
-
517
- break;
518
-
519
- case SCENE_RESULT: //ゲーム結果
520
-
521
- scene_no = GameResultScene(&gi);
522
-
523
- break;
524
-
525
- default: //バグか何かでいずれでもない時
526
-
527
- scene_no = SCENE_SHUTDONW; //無限ループを避けるため終了
528
-
529
- break;
530
-
531
- }
532
-
533
-
534
-
535
- }
536
-
537
-
538
-
539
- //*** 終了処理 ***
540
-
541
- DxLib_End();
542
-
543
-
544
-
545
- return 0;
546
-
547
- }
548
-
549
-
550
-
551
535
  ### 試したこと
552
536
 
553
537