WilliamAnderson/Asteroids

From ggc

Jump to: navigation, search

ehhhh too many glitches.



001 package WilliamAnderson;
002 
003 import wiki.Wiki;
004 import fang.*;
005 import java.awt.*;
006 import java.awt.geom.*;
007 
008 /**
009  * All about my game here.
010  @author Wanderso
011  */
012 public class Asteroids extends GameLoop
013 {
014   private Sprite lwall, rwall, floor, twall, roid1, roid2;
015   private Sprite roid3, roid4, roid5, shippy, bullet;
016   private ProjectileTracker tracker, tracker2, tracker3, tracker4, tracker5, btracker;
017 
018   private ImageSprite background;
019   private int score, level, lives;
020   private StringSprite scoreSprite, livesS, gameOver;
021 
022 
023 
024   public void startGame()
025   {
026 
027     makeSprites();
028     addSprites();
029     makeWalls();
030     makeSounds();
031     level=0;
032     lives=10;
033     score=0;
034 
035 
036   }
037 
038   private void makeSprites()
039   {
040     background=new ImageSprite("Wback.jpg");
041     background.setScale(1.5);
042     background.setLocation(.5,.5);
043 
044     bullet=new ImageSprite("Wbullet.gif");
045     bullet.setScale(.25);
046 
047     roid1=new ImageSprite("Roid1.gif");
048     roid1.setScale(.25);
049     roid1.setLocation(random.nextDouble(),random.nextDouble());
050 
051 
052 
053     roid2=new ImageSprite("Roid3.gif");
054     roid2.setScale(.25);
055     roid2.setLocation(random.nextDouble(),random.nextDouble());
056 
057 
058 
059 
060     roid3=new ImageSprite("Roid4.gif");
061     roid3.setScale(.25);
062     roid3.setLocation(random.nextDouble(),random.nextDouble());
063 
064 
065     roid4=new ImageSprite("Roid2.gif");
066     roid4.setScale(.25);
067     roid4.setLocation(random.nextDouble(),random.nextDouble());
068 
069 
070 
071     roid5=new ImageSprite("Roid1.gif");
072     roid5.setScale(.25);
073     roid5.setLocation(random.nextDouble(),random.nextDouble());
074 
075 
076 
077     shippy=new ImageSprite("Shippy.gif");
078     shippy.setScale(.25);
079     shippy.setLocation(.5,.5);
080 
081 
082 
083     tracker=new ProjectileTracker(.10,random.nextDouble());
084     tracker2=new ProjectileTracker(.10,random.nextDouble());
085     tracker3=new ProjectileTracker(.10,random.nextDouble());
086     tracker4=new ProjectileTracker(.10,random.nextDouble());
087     tracker5=new ProjectileTracker(.10,random.nextDouble());
088 
089 
090 
091     roid1.setTracker(tracker);
092     roid2.setTracker(tracker2);
093     roid3.setTracker(tracker3);
094     roid4.setTracker(tracker4);
095     roid5.setTracker(tracker5);
096 
097 
098 
099 
100     scoreSprite=new StringSprite("Score: "+score);
101     scoreSprite.setScale(.2);
102     scoreSprite.setLocation(.8,.9);
103     scoreSprite.setColor(Color.BLACK);
104 
105     livesS=new StringSprite("Lives: 3");
106     livesS.setScale(.2);
107     livesS.setLocation(.2,.9);
108     livesS.setColor(Color.BLACK);
109 
110     gameOver=new StringSprite("Game Over");
111     gameOver.setScale(.5);
112     gameOver.setLocation(.5,.5);
113     gameOver.setColor(Color.RED);
114 
115 
116 
117 
118 
119   }
120   public void addSprites()
121   {
122     canvas.addSprite(background, roid1, roid2, roid3, roid4, roid5, shippy, scoreSprite, livesS);
123 
124   }
125 
126 
127 
128   private void makeSounds()
129   {}
130 
131 
132 
133 
134   public void makeWalls()
135   {
136     lwall=new RectangleSprite(140);
137     lwall.setLocation(00.5);
138     lwall.setScale(1);
139     lwall.setColor(Color.BLUE);
140     canvas.addSprite(lwall);
141     rwall=new RectangleSprite(140);
142     rwall.setLocation(10.5);
143     rwall.setScale(1);
144     rwall.setColor(Color.BLUE);
145     canvas.addSprite(rwall);
146     twall=new RectangleSprite(401);
147     twall.setLocation(0.50);
148     twall.setScale(1);
149     twall.setColor(Color.BLUE);
150     canvas.addSprite(twall);
151     floor=new RectangleSprite(401);
152     floor.setLocation(0.51);
153     floor.setScale(1);
154     floor.setColor(Color.BLUE);
155     canvas.addSprite(floor);
156   }
157 
158   private void roidIntersects()
159   {
160 
161     if(rwall.intersects(roid1))
162     {
163       double normal=Sprite.getNormalVector(rwall.getShape(), roid1.getShape());
164       tracker.bounce(normal);
165     }
166     if(lwall.intersects(roid1))
167     {
168       double normal=Sprite.getNormalVector(lwall.getShape(), roid1.getShape());
169       tracker.bounce(normal);
170 
171     }
172 
173     if(twall.intersects(roid1))
174     {
175       double normal=Sprite.getNormalVector(twall.getShape(), roid1.getShape());
176       tracker.bounce(normal);
177 
178     }
179 
180     if(floor.intersects(roid1))
181     {
182       double normal=Sprite.getNormalVector(floor.getShape(), roid1.getShape());
183       tracker.bounce(normal);
184     }
185 
186 
187 
188 
189 
190 
191 
192 
193 
194 
195 
196 
197 
198 
199     if(rwall.intersects(roid2))
200     {
201       double normal=Sprite.getNormalVector(rwall.getShape(), roid2.getShape());
202       tracker2.bounce(normal);
203     }
204     if(lwall.intersects(roid2))
205     {
206       double normal=Sprite.getNormalVector(lwall.getShape(), roid2.getShape());
207       tracker2.bounce(normal);
208 
209     }
210 
211     if(twall.intersects(roid2))
212     {
213       double normal=Sprite.getNormalVector(twall.getShape(), roid2.getShape());
214       tracker2.bounce(normal);
215 
216     }
217 
218     if(floor.intersects(roid2))
219     {
220       double normal=Sprite.getNormalVector(floor.getShape(), roid2.getShape());
221       tracker2.bounce(normal);
222     }
223 
224 
225 
226 
227 
228 
229 
230 
231     if(rwall.intersects(roid3))
232     {
233       double normal=Sprite.getNormalVector(rwall.getShape(), roid3.getShape());
234       tracker3.bounce(normal);
235     }
236     if(lwall.intersects(roid3))
237     {
238       double normal=Sprite.getNormalVector(lwall.getShape(), roid3.getShape());
239       tracker3.bounce(normal);
240 
241     }
242 
243     if(twall.intersects(roid3))
244     {
245       double normal=Sprite.getNormalVector(twall.getShape(), roid3.getShape());
246       tracker3.bounce(normal);
247 
248     }
249 
250     if(floor.intersects(roid3))
251     {
252       double normal=Sprite.getNormalVector(floor.getShape(), roid3.getShape());
253       tracker3.bounce(normal);
254     }
255 
256 
257 
258 
259 
260 
261 
262     if(rwall.intersects(roid4))
263     {
264       double normal=Sprite.getNormalVector(rwall.getShape(), roid4.getShape());
265       tracker4.bounce(normal);
266     }
267     if(lwall.intersects(roid4))
268     {
269       double normal=Sprite.getNormalVector(lwall.getShape(), roid4.getShape());
270       tracker4.bounce(normal);
271 
272     }
273 
274     if(twall.intersects(roid4))
275     {
276       double normal=Sprite.getNormalVector(twall.getShape(), roid4.getShape());
277       tracker4.bounce(normal);
278 
279     }
280 
281     if(floor.intersects(roid4))
282     {
283       double normal=Sprite.getNormalVector(floor.getShape(), roid4.getShape());
284       tracker4.bounce(normal);
285     }
286 
287 
288 
289 
290 
291 
292 
293 
294 
295 
296 
297 
298 
299 
300 
301     if(rwall.intersects(roid5))
302     {
303       double normal=Sprite.getNormalVector(rwall.getShape(), roid5.getShape());
304       tracker5.bounce(normal);
305     }
306     if(lwall.intersects(roid5))
307     {
308       double normal=Sprite.getNormalVector(lwall.getShape(), roid5.getShape());
309       tracker5.bounce(normal);
310 
311     }
312 
313     if(twall.intersects(roid5))
314     {
315       double normal=Sprite.getNormalVector(twall.getShape(), roid5.getShape());
316       tracker5.bounce(normal);
317 
318     }
319 
320     if(floor.intersects(roid5))
321     {
322       double normal=Sprite.getNormalVector(floor.getShape(), roid5.getShape());
323       tracker5.bounce(normal);
324     }
325 
326 
327 
328 
329 
330 
331 
332 
333 
334 
335 
336 
337 
338 
339 
340 
341 
342 
343 
344 
345 
346     if(rwall.intersects(bullet))
347     {
348       canvas.removeSprite(bullet);
349     }
350     if(lwall.intersects(bullet))
351     {
352       canvas.removeSprite(bullet);
353     }
354     if(twall.intersects(bullet))
355     {
356       canvas.removeSprite(bullet);
357     }
358     if(floor.intersects(bullet))
359     {
360       canvas.removeSprite(bullet);
361     }
362 
363 
364 
365 
366   }
367 
368 
369 
370 
371 
372 
373   private void updateScore()
374   {
375     scoreSprite.setText("Score: "+score);
376   }
377 
378   private void updateLives()
379   {
380     livesS.setText("Lives: "+lives);
381   }
382 
383 
384 
385 
386 
387 
388 
389   private void roidRotate()
390   {}
391 
392 
393   public void shippyRotate()
394   {
395 
396     shippy.rotate(-.3);
397   }
398 
399   public void shippyRotate2()
400   {
401     shippy.rotate(.3);
402   }
403 
404 
405 
406   private void makeBullets()
407   {
408 
409     btracker=new ProjectileTracker(.5,shippy.getRotation());
410     bullet.setTracker(btracker);
411 
412     bullet.setLocation(shippy.getLocation());
413     canvas.addSprite(bullet);
414 
415   }
416 
417 
418 
419 
420   private void score()
421   {
422     if(bullet.intersects(roid1))
423     {
424 
425 
426       canvas.removeSprite(roid1);
427 
428       score++;
429       updateScore();
430     }
431 
432 
433 
434     if(bullet.intersects(roid2))
435     {
436 
437       canvas.removeSprite(roid2);
438 
439       score++;
440       updateScore();
441     }
442 
443 
444 
445 
446     if(bullet.intersects(roid3))
447     {
448 
449 
450 
451       canvas.removeSprite(roid3);
452 
453       score++;
454       updateScore();
455     }
456 
457 
458 
459 
460 
461     if(bullet.intersects(roid4))
462     {
463 
464 
465       canvas.removeSprite(roid4);
466 
467       score++;
468       updateScore();
469     }
470 
471 
472 
473 
474 
475     if(bullet.intersects(roid5))
476     {
477 
478 
479       canvas.removeSprite(roid5);
480 
481       score++;
482       updateScore();
483     }
484 
485 
486 
487 
488 
489 
490 
491 
492   }
493 
494   private void lifeCheck()
495   {
496     if(shippy.intersects(roid1))
497     {
498 
499       lives--;
500       updateLives();
501       canvas.removeSprite(roid1);
502     }
503 
504     if(shippy.intersects(roid2))
505     {
506 
507       lives--;
508       updateLives();
509       canvas.removeSprite(roid2);
510     }
511 
512     if(shippy.intersects(roid3))
513     {
514 
515       lives--;
516       updateLives();
517       canvas.removeSprite(roid3);
518     }
519 
520     if(shippy.intersects(roid4))
521     {
522 
523       lives--;
524       updateLives();
525       canvas.removeSprite(roid4);
526     }
527 
528     if(shippy.intersects(roid5))
529     {
530 
531       lives--;
532       updateLives();
533       canvas.removeSprite(roid5);
534     }
535 
536 
537 
538 
539 
540   }
541 
542 
543 
544 
545   private void isOver()
546   {
547     if(lives==0)
548     {
549       canvas.removeSprite(bullet, roid1, roid2, roid3, roid4, roid5, shippy, scoreSprite, livesS);
550       canvas.addSprite(gameOver);
551     }
552 
553     if(score==10)
554     {
555       canvas.removeSprite(bullet, roid1, roid2, roid3, roid4, roid5, shippy, scoreSprite, livesS);
556       canvas.addSprite(gameOver);
557     }
558 
559   }
560 
561 
562 
563 
564 
565 
566 
567 
568 
569 
570 
571 
572 
573   public void advanceFrame(double timePassed)
574   {
575 
576     roidIntersects();
577     roidRotate();
578 
579 
580     if(getPlayer().getKeyboard().getLastKey()=='w')
581     {
582       shippyRotate();
583     }
584 
585 
586     if(getPlayer().getKeyboard().getLastKey()=='e')
587     {
588       shippyRotate2();
589     }
590 
591 
592     shippy.setLocation(getPlayer().getMouse().getLocation());
593 
594 
595 
596     updateScore();
597     updateLives();
598 
599     if(getPlayer().getKeyboard().getLastKey()=='t')
600     {
601       makeBullets();
602 
603     }
604 
605     score();
606     lifeCheck();
607     isOver();
608 
609 
610   }
611 
612 
613 
614 
615 }


Download/View WilliamAnderson/Asteroids.java





Views
Personal tools
Add to 
del.icio.usAdd to 
diggAdd to 
FacebookAdd to 
favoritesAdd to 
GoogleAdd to 
MySpaceAdd to 
PrintAdd to 
SlashdotAdd to 
StumbleUponAdd to 
Twitter