質問編集履歴

1

編集依頼があったため

2019/01/24 07:59

投稿

shintaro_4869
shintaro_4869

スコア10

test CHANGED
File without changes
test CHANGED
@@ -36,6 +36,296 @@
36
36
 
37
37
 
38
38
 
39
+ public class Game extends Turtle {
40
+
41
+
42
+
43
+ //起動処理
44
+
45
+ public static void main(String[] args) {
46
+
47
+ Turtle.startTurtle(new Game(), args);
48
+
49
+ }
50
+
51
+
52
+
53
+ //タートルを動かす処理
54
+
55
+ public void start() {
56
+
57
+
58
+
59
+ //画面の調整
60
+
61
+ window.setSize(1100, 800);
62
+
63
+ window.warp(100, 100);
64
+
65
+
66
+
67
+ // バックグラウンド画像
68
+
69
+ ImageTurtle bg = new ImageTurtle("bg.jpg");
70
+
71
+
72
+
73
+ int score; //得点を入れる変数
74
+
75
+
76
+
77
+ //得点板の生成
78
+
79
+ TextTurtle scoreBoard = new TextTurtle(); //scoreBoardという名前のTextTurtleを生成
80
+
81
+
82
+
83
+ //キャラクターの生成
84
+
85
+ ImageTurtle enemy1 = new ImageTurtle("Star.png");//enemyという名前の星を生成
86
+
87
+ ImageTurtle player = new ImageTurtle("player.png");//playerという名前の銃を生成
88
+
89
+ ImageTurtle bullet = new ImageTurtle("bullet.png");//bullet(弾)という名前の円を作成
90
+
91
+ ImageTurtle item1 = new ImageTurtle("oil.png");
92
+
93
+ ImageTurtle back = new ImageTurtle("gameover.jpg");
94
+
95
+
96
+
97
+ // 音楽の生成
98
+
99
+ SoundTurtle hit = new SoundTurtle("hit.mp3");
100
+
101
+ hit.loadOnMemory();
102
+
103
+ SoundTurtle fire = new SoundTurtle("fire.mp3");
104
+
105
+ fire.loadOnMemory();
106
+
107
+ SoundTurtle out = new SoundTurtle("out.wav");
108
+
109
+ out.loadOnMemory();
110
+
111
+ SoundTurtle kinoko = new SoundTurtle("kinoko.wav");
112
+
113
+ kinoko.loadOnMemory();
114
+
115
+
116
+
117
+ SoundTurtle bgm = new SoundTurtle("bgm.mp3");
118
+
119
+ // BSound bgm = new BSound("bgm.mp3");
120
+
121
+ bgm.play();
122
+
123
+
124
+
125
+ //弾を適切な大きさに調整
126
+
127
+ bullet.size(20, 20);
128
+
129
+
130
+
131
+ //キャラクターの位置を調整
132
+
133
+ enemy1.warp(200, 100);
134
+
135
+ player.warp(440, 350);
136
+
137
+ bullet.warp(-100, -100);//弾は最初見えない位置に置いておく
138
+
139
+ item1.warp(600,5);
140
+
141
+ back.warp(2000,1500);
142
+
143
+
144
+
145
+ //得点板の位置を調整
146
+
147
+ scoreBoard.warp(1000, 50);
148
+
149
+
150
+
151
+ //得点を初期化
152
+
153
+ score = 0;
154
+
155
+
156
+
157
+ while (true) {
158
+
159
+
160
+
161
+ // --- 待つ ---
162
+
163
+ sleep(0.025);
164
+
165
+
166
+
167
+ // --- 処理 ---
168
+
169
+
170
+
171
+ //敵を動かす(流れ星と一緒)
172
+
173
+ enemy1.warp(enemy1.x(), enemy1.y() + 8 );
174
+
175
+ enemy1.rt(10);
176
+
177
+
178
+
179
+ //アイテムを動かす
180
+
181
+ item1.warp(item1.x(), item1.y() +10 );
182
+
183
+ item1.rt(10);
184
+
185
+
186
+
187
+ //もし,敵が上端だったら
188
+
189
+ if (enemy1.y () > 800) {
190
+
191
+ enemy1.warp(enemy1.x(), 0 );//上端にワープ
192
+
193
+ }
194
+
195
+
196
+
197
+ //もしアイテムが上端だったら
198
+
199
+ if (item1.y () > 800) {
200
+
201
+ item1.warp(item1.x(), 0 );
202
+
203
+ }
204
+
205
+
206
+
207
+ //銃を左右に動かす
208
+
209
+ if (key() == 37) { //左
210
+
211
+ player.warp(player.x() -10
212
+
213
+ ,player.y() );
214
+
215
+ } else if (key() == 39) { // 右
216
+
217
+ player.warp(player.x() +10, player.y() );
218
+
219
+ }
220
+
221
+
222
+
223
+ // 銃を上下に動かす
224
+
225
+ if(key() == 38) { //上
226
+
227
+ player.warp(player.x(),player.y() -8 );
228
+
229
+ } else if (key() == 40) {// 下
230
+
231
+ player.warp(player.x(), player.y() + 8);
232
+
233
+ }
234
+
235
+
236
+
237
+ //スペースが押されたら,
238
+
239
+ if (key() == 32) {
240
+
241
+ //弾を出す(弾を銃と同じ位置にする)
242
+
243
+ bullet.warp(player.x(), player.y() );
244
+
245
+ fire.play();
246
+
247
+ }
248
+
249
+
250
+
251
+ //弾を上に動かす
252
+
253
+ //(見えなくても,上に動かし続ける)
254
+
255
+ bullet.warp(bullet.x(), bullet.y() - 15) ;
256
+
257
+
258
+
259
+ //もし,弾が敵に当たっていたら
260
+
261
+ if (bullet.intersects(enemy1) ) {
262
+
263
+ enemy1.warp(random(1100),0);//enemyを動かす
264
+
265
+ score++;//得点を増やす
266
+
267
+ // 衝突音を鳴らす
268
+
269
+ hit.play();
270
+
271
+ }
272
+
273
+
274
+
275
+ //もしアイテムがplayerに当たったら
276
+
277
+ if (item1.intersects(player) ) {
278
+
279
+ player.large(20);//playerを大きくする
280
+
281
+ item1.warp(item1.x() - 200,0);
282
+
283
+ kinoko.play();
284
+
285
+ }
286
+
287
+
288
+
289
+ //もしplayerがenemyに当たったら
290
+
291
+ if (player.intersects(enemy1) ) {
292
+
293
+ player.small(10);//playerを小さくする
294
+
295
+ out.play();//衝突音を鳴らす
296
+
297
+ }
298
+
299
+
300
+
301
+ if(player.size(5,5) ) {
302
+
303
+ back.warp(550,400);
304
+
305
+ }
306
+
307
+
308
+
309
+ //得点版の数字を更新
310
+
311
+ scoreBoard.text(score);
312
+
313
+
314
+
315
+
316
+
317
+ //再描画
318
+
319
+ update();
320
+
321
+ }
322
+
323
+ }
324
+
325
+ }
326
+
327
+
328
+
39
329
  補足情報(FW/ツールのバージョンなど)
40
330
 
41
331