質問編集履歴

1

コードの修正

2017/07/30 09:31

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  ```
8
8
 
9
- Duplicat method keyPressed() in type ShootingGame
9
+ NullPointerException
10
10
 
11
11
  ```
12
12
 
@@ -28,12 +28,10 @@
28
28
 
29
29
  int numOfMaxShots = 50;
30
30
 
31
+ int nextShot = 0;
32
+
31
33
  Shot[] shots = new Shot[numOfMaxShots];
32
34
 
33
- int nextShot = 0;
34
-
35
- ArrayList<BULLET> bulletList = new ArrayList<BULLET>();
36
-
37
35
  int numOfMaxBombs = 50;
38
36
 
39
37
  Bomb[] bombs = new Bomb[numOfMaxBombs];
@@ -52,8 +50,6 @@
52
50
 
53
51
 
54
52
 
55
-
56
-
57
53
  void setup() {
58
54
 
59
55
  size(600, 600);
@@ -88,138 +84,268 @@
88
84
 
89
85
  for(int i = 0; i < numOfMaxShots; i++) {
90
86
 
87
+ shots[i] = new Shot(0, height + 100, color(255, 255, 0));
88
+
89
+ }
90
+
91
+ for(int i = 0; i < numOfMaxBombs; i++) {
92
+
93
+ bombs[i] = new Bomb(0, -100, color(255, 0, 0));
94
+
95
+ }
96
+
97
+ }
98
+
99
+
100
+
101
+ void draw() {
102
+
103
+ background(0);
104
+
105
+ myShip.draw();
106
+
107
+ myShipController();
108
+
109
+ drawEnemies();
110
+
111
+ drawBombs();
112
+
113
+ enemyController();
114
+
115
+ shotsController();
116
+
117
+ collisionDetection();
118
+
119
+ }
120
+
121
+ {
122
+
123
+
124
+
125
+ if (code==0) {
126
+
127
+ background(0);
128
+
129
+ textSize(32);
130
+
131
+ fill(255);
132
+
133
+ text("'a Click' is clicked to start", 400, 350) ;
134
+
135
+ }
136
+
137
+
138
+
139
+
140
+
141
+ if (code==1) {
142
+
143
+ background(0);
144
+
145
+ for(int i = 0; i < numOfMaxShots; i++) {
146
+
91
147
  shots[i] = new Shot(0, height + 100, color(255, 255, 0));
92
148
 
93
149
  }
94
150
 
151
+ text("SCORE:"+str(score), width/7, height -50) ;
152
+
153
+ }
154
+
155
+
156
+
157
+ if (code==2) {
158
+
159
+ fill(0);
160
+
161
+ rect(0, 0, width, height);
162
+
163
+ textSize(32);
164
+
165
+ fill(255);
166
+
167
+ text("GAME OVER", 600, 350) ;
168
+
169
+ text("RESTART is 'd Click'", 600, 500);
170
+
171
+ }
172
+
173
+ }
174
+
175
+
176
+
177
+
178
+
179
+ void drawEnemies() {
180
+
181
+ for(int i = 0; i < numOfEnemies; i++) {
182
+
183
+ en1[i].draw();
184
+
185
+ }
186
+
187
+ }
188
+
189
+
190
+
191
+ void enemyController() {
192
+
193
+ for(int i = 0; i < numOfEnemies; i++) {
194
+
195
+ if(en1[i].xpos < 0 || en1[i].xpos + en1[i].getWidth() > width) {
196
+
197
+ en1[i].speed = - en1[i].speed;
198
+
199
+ }
200
+
201
+ en1[i].moveXaxis();
202
+
203
+ if(en1[i].visible) {
204
+
205
+ if(floor(random(50)) == 5) {
206
+
207
+ bombs[nextBomb].xpos = en1[i].xpos + en1[i].getWidth() / 2;
208
+
209
+ bombs[nextBomb].ypos = en1[i].ypos + en1[i].getHeight();
210
+
211
+ bombs[nextBomb].visible = true;
212
+
213
+ nextBomb = (nextBomb + 1) % numOfMaxBombs;
214
+
215
+ }
216
+
217
+ }
218
+
219
+ }
220
+
221
+ }
222
+
223
+
224
+
225
+ void drawBombs() {
226
+
95
227
  for(int i = 0; i < numOfMaxBombs; i++) {
96
228
 
97
- bombs[i] = new Bomb(0, -100, color(255, 0, 0));
98
-
99
- }
100
-
101
- }
102
-
103
-
104
-
105
- void draw() {
106
-
107
- background(0);
108
-
109
- myShip.draw();
110
-
111
- myShipController();
112
-
113
- drawEnemies();
114
-
115
- drawBombs();
116
-
117
- enemyController();
118
-
119
- shotsController();
120
-
121
- collisionDetection();
122
-
123
- }
124
-
125
- {
126
-
127
-
229
+ bombs[i].draw();
230
+
231
+ bombs[i].move();
232
+
233
+ }
234
+
235
+ }
236
+
237
+
238
+
239
+ void collisionDetection() {
240
+
241
+ for(int i = 0; i < numOfEnemies; i++) {
242
+
243
+ for(int j = 0; j < numOfMaxShots; j++) {
244
+
245
+ if(en1[i].visible && en1[i].isIn(shots[j].xpos, shots[j].ypos)) {
246
+
247
+ en1[i].visible = false;
248
+
249
+ shots[j].visible = false;
250
+
251
+ }
252
+
253
+ }
254
+
255
+ }
256
+
257
+ for(int i = 0; i < numOfMaxBombs; i++) {
258
+
259
+ if(bombs[i].visible && myShip.isIn(bombs[i].xpos, bombs[i].ypos)) {
260
+
261
+ myShip.visible = false;
262
+
263
+ bombs[i].visible = false;
264
+
265
+ }
266
+
267
+ }
268
+
269
+ }
270
+
271
+
272
+
273
+ void keyPressed() {
274
+
275
+ if(key == 'd') {
276
+
277
+ keyRight = true;
278
+
279
+ }
280
+
281
+ if(key == 'a') {
282
+
283
+ keyLeft = true;
284
+
285
+ }
286
+
287
+ if(key == 'w') {
288
+
289
+ keyUp = true;
290
+
291
+ }
292
+
293
+ if(key == 's') {
294
+
295
+ keyDown = true;
296
+
297
+ }
298
+
299
+ }
300
+
301
+
302
+
303
+ void keyReleased() {
304
+
305
+ if(key == 'a') {
306
+
307
+ keyLeft = false;
308
+
309
+ }
310
+
311
+ else if(key == 'd') {
312
+
313
+ keyRight = false;
314
+
315
+ }
316
+
317
+ else if(key == 'w') {
318
+
319
+ keyUp = false;
320
+
321
+ }
322
+
323
+ else if(key == 's') {
324
+
325
+ keyDown = false;
326
+
327
+ }
328
+
329
+ else if(keyCode == ' ') {
330
+
331
+ fire();
332
+
333
+ }
128
334
 
129
335
  if (code==0) {
130
336
 
337
+
338
+
339
+ if (key=='a') {
340
+
131
- background(0);
341
+ code=1;
132
-
133
- textSize(32);
342
+
134
-
135
- fill(255);
136
-
137
- text("'a Click' is clicked to start", 400, 350) ;
138
-
139
- }
343
+ }
140
-
141
-
142
-
143
-
144
-
145
- if (code==1) {
344
+
146
-
147
- background(0);
148
-
149
- for (int i=bulletList.size()-1; i>=0; i--) {
150
-
151
- BULLET b = bulletList.get(i);
152
-
153
- if (b.isAlive()) {
154
-
155
- b.move();
156
-
157
- b.display();
158
-
159
- } else {
160
-
161
- bulletList.remove(i);
162
-
163
- }
345
+ }
164
-
165
- }
166
-
167
- text("SCORE:"+str(score), width/7, height -50) ;
168
-
169
- }
170
-
171
-
172
346
 
173
347
  if (code==2) {
174
348
 
175
- fill(0);
176
-
177
- rect(0, 0, width, height);
178
-
179
- textSize(32);
180
-
181
- fill(255);
182
-
183
- text("GAME OVER", 600, 350) ;
184
-
185
- text("RESTART is 'd Click'", 600, 500);
186
-
187
- }
188
-
189
- }
190
-
191
-
192
-
193
-
194
-
195
- void keyPressed() {
196
-
197
-
198
-
199
- if (code==0) {
200
-
201
-
202
-
203
- if (key=='a') {
204
-
205
- code=1;
206
-
207
- }
208
-
209
- }
210
-
211
- if (code==1) {
212
-
213
- if (key=='s') {
214
-
215
- bulletList.add(new BULLET(myShip.xpos, myShip.ypos));
216
-
217
- }
218
-
219
- }
220
-
221
- if (code==2) {
222
-
223
349
  if (key=='d') {
224
350
 
225
351
  code=0;
@@ -230,166 +356,6 @@
230
356
 
231
357
  }
232
358
 
233
- void drawEnemies() {
234
-
235
- for(int i = 0; i < numOfEnemies; i++) {
236
-
237
- enemy[i].draw();
238
-
239
- }
240
-
241
- }
242
-
243
-
244
-
245
- void enemyController() {
246
-
247
- for(int i = 0; i < numOfEnemies; i++) {
248
-
249
- if(en1[i].xpos < 0 || en1[i].xpos + en1[i].getWidth() > width) {
250
-
251
- en1[i].speed = - en1[i].speed;
252
-
253
- }
254
-
255
- en1[i].moveXaxis();
256
-
257
- if(en1[i].visible) {
258
-
259
- if(floor(random(50)) == 5) {
260
-
261
- bombs[nextBomb].xpos = en1[i].xpos + en1[i].getWidth() / 2;
262
-
263
- bombs[nextBomb].ypos = en1[i].ypos + en1[i].getHeight();
264
-
265
- bombs[nextBomb].visible = true;
266
-
267
- nextBomb = (nextBomb + 1) % numOfMaxBombs;
268
-
269
- }
270
-
271
- }
272
-
273
- }
274
-
275
- }
276
-
277
-
278
-
279
- void drawBombs() {
280
-
281
- for(int i = 0; i < numOfMaxBombs; i++) {
282
-
283
- bombs[i].draw();
284
-
285
- bombs[i].move();
286
-
287
- }
288
-
289
- }
290
-
291
-
292
-
293
- void collisionDetection() {
294
-
295
- for(int i = 0; i < numOfEnemies; i++) {
296
-
297
- for(int j = 0; j < numOfMaxShots; j++) {
298
-
299
- if(enemy[i].visible && enemy[i].isIn(shots[j].xpos, shots[j].ypos)) {
300
-
301
- enemy[i].visible = false;
302
-
303
- shots[j].visible = false;
304
-
305
- }
306
-
307
- }
308
-
309
- }
310
-
311
- for(int i = 0; i < numOfMaxBombs; i++) {
312
-
313
- if(bombs[i].visible && myShip.isIn(bombs[i].xpos, bombs[i].ypos)) {
314
-
315
- myShip.visible = false;
316
-
317
- bombs[i].visible = false;
318
-
319
- }
320
-
321
- }
322
-
323
- }
324
-
325
-
326
-
327
- void keyPressed() {
328
-
329
- if(key == 'd') {
330
-
331
- keyRight = true;
332
-
333
- }
334
-
335
- if(key == 'a') {
336
-
337
- keyLeft = true;
338
-
339
- }
340
-
341
- if(key == 'w') {
342
-
343
- keyUp = true;
344
-
345
- }
346
-
347
- if(key == 's') {
348
-
349
- keyDown = true;
350
-
351
- }
352
-
353
- }
354
-
355
-
356
-
357
- void keyReleased() {
358
-
359
- if(key == 'a') {
360
-
361
- keyLeft = false;
362
-
363
- }
364
-
365
- else if(key == 'd') {
366
-
367
- keyRight = false;
368
-
369
- }
370
-
371
- else if(key == 'w') {
372
-
373
- keyUp = false;
374
-
375
- }
376
-
377
- else if(key == 's') {
378
-
379
- keyDown = false;
380
-
381
- }
382
-
383
- else if(keyCode == ' ') {
384
-
385
- fire();
386
-
387
- }
388
-
389
- }
390
-
391
-
392
-
393
359
  void myShipController() {
394
360
 
395
361
  if(keyLeft) {
@@ -574,6 +540,66 @@
574
540
 
575
541
 
576
542
 
543
+ class Bomb {
544
+
545
+ int xpos;
546
+
547
+ int ypos;
548
+
549
+ color c;
550
+
551
+ int speed = 3;
552
+
553
+ boolean visible = false;
554
+
555
+
556
+
557
+ Bomb(int _xpos, int _ypos, color _c) {
558
+
559
+ xpos = _xpos;
560
+
561
+ ypos = _ypos;
562
+
563
+ c = _c;
564
+
565
+ }
566
+
567
+
568
+
569
+ void draw() {
570
+
571
+ fill(c);
572
+
573
+ if(visible) {
574
+
575
+ fill(c);
576
+
577
+ ellipse(xpos, ypos, 10, 10);
578
+
579
+ }
580
+
581
+ }
582
+
583
+
584
+
585
+ void move() {
586
+
587
+ if(visible && ypos < height + 50) {
588
+
589
+ ypos += speed;
590
+
591
+ }
592
+
593
+ else {
594
+
595
+ visible = false;
596
+
597
+ }
598
+
599
+ }
600
+
601
+ }
602
+
577
603
  class Shot {
578
604
 
579
605
  int xpos;
@@ -612,9 +638,7 @@
612
638
 
613
639
  }
614
640
 
615
-
616
-
617
- void move() {
641
+ void move() {
618
642
 
619
643
  if(ypos > -50) {
620
644
 
@@ -632,140 +656,6 @@
632
656
 
633
657
  }
634
658
 
635
-
636
-
637
- class Bomb {
638
-
639
- int xpos;
640
-
641
- int ypos;
642
-
643
- color c;
644
-
645
- int speed = 3;
646
-
647
- boolean visible = false;
648
-
649
-
650
-
651
- Bomb(int _xpos, int _ypos, color _c) {
652
-
653
- xpos = _xpos;
654
-
655
- ypos = _ypos;
656
-
657
- c = _c;
658
-
659
- }
660
-
661
-
662
-
663
- void draw() {
664
-
665
- fill(c);
666
-
667
- if(visible) {
668
-
669
- fill(c);
670
-
671
- ellipse(xpos, ypos, 10, 10);
672
-
673
- }
674
-
675
- }
676
-
677
-
678
-
679
- void move() {
680
-
681
- if(visible && ypos < height + 50) {
682
-
683
- ypos += speed;
684
-
685
- }
686
-
687
- else {
688
-
689
- visible = false;
690
-
691
- }
692
-
693
- }
694
-
695
- }
696
-
697
- class BULLET {
698
-
699
- float bx;
700
-
701
- float by;
702
-
703
- float bwi;
704
-
705
- float bhe;
706
-
707
- float bsp;
708
-
709
-
710
-
711
- BULLET(float _x, float _y) {
712
-
713
- bx = _x;
714
-
715
- by = _y;
716
-
717
- bwi = 30;
718
-
719
- bhe = 5;
720
-
721
- bsp = 15;
722
-
723
- }
724
-
725
-
726
-
727
- void move() {
728
-
729
- bx += bsp;
730
-
731
-
732
-
733
- if (e1x<50||e1x<mouseX) {
734
-
735
- bx = width;
736
-
737
- by = height;
738
-
739
- }
740
-
741
- }
742
-
743
- void display() {
744
-
745
- stroke(50, 225, 100);
746
-
747
- fill(255);
748
-
749
- ellipse(bx, by, bwi, bhe);
750
-
751
- }
752
-
753
- boolean isAlive() {
754
-
755
- if (bx+bwi/2<0 || width<bx-bwi/7 || by+bhe/3<0 || height<by-bhe/3) {
756
-
757
- return false;
758
-
759
- }
760
-
761
- return true;
762
-
763
- }
764
-
765
- }
766
-
767
-
768
-
769
659
  ```
770
660
 
771
661