Curtis/FinalProj

From ggc

Jump to: navigation, search

001 package Curtis;
002 //start auto-imports
003 import java.util.*;
004 //end auto-imports
005 
006 import fang.*;
007 import java.awt.*;
008 import java.awt.geom.*;
009 
010 /**
011  * Curtis St. John.
012  * Last Defense */
013 public class FinalProj extends Game
014 {
015   private ImageSprite earth, earth2, earth3, earth4;
016   private ImageSprite hero, enemy1, enemy2, enemy3, boss, flame;
017   private OutlineSprite wall1, wall2, wall3, wall4;
018   private OvalSprite missle;
019   private ArrayList<Sprite> blueBullet;
020   private ArrayList<Sprite> violetBullet;
021   private StringSprite score, lose, win, lvl2, lvl3, kill;
022   private ProjectileTransformer projectile1, projectile2, projectile3;
023   private ProjectileTransformer projectile4, bulletTransformer, missleTransformer;
024 
025   /**sets up the game*/
026   public void setup()
027   {
028     earthBacking();
029     heroShip();
030     movingFlame();
031     ufoShip();
032     bossShip();
033     invsWall();
034     score();
035     helpText();
036 
037     blueBullet=new ArrayList<Sprite>();
038     violetBullet=new ArrayList<Sprite>();
039     /**Projectile transformers to make the enemy ships move*/
040     projectile1 =new ProjectileTransformer(1.15);
041     projectile2 =new ProjectileTransformer(2.15);
042     projectile3 =new ProjectileTransformer(3.15);
043     projectile4 =new ProjectileTransformer(20.0);
044     enemy1.setTracker(projectile1);
045     enemy2.setTracker(projectile2);
046     enemy3.setTracker(projectile3);
047     boss.setTracker(projectile4);
048   }
049   /**Creates the earth to rotate around also earth damage for lives*/
050   private void earthBacking()
051   {
052     earth= new ImageSprite("Earth.jpeg");
053     earth.setScale(.65);
054     earth.setLocation(.51.13);
055     earth.setVisible(true);
056 
057     earth2= new ImageSprite("Earth2.JPG");
058     earth2.setScale(.65);
059     earth2.setLocation(.51.13);
060     earth2.setVisible(false);
061 
062     earth3= new ImageSprite("Earth3.JPG");
063     earth3.setScale(.65);
064     earth3.setLocation(.51.13);
065     earth3.setVisible(false);
066 
067     earth4= new ImageSprite("Earth4.JPG");
068     earth4.setScale(.65);
069     earth4.setLocation(.51.13);
070     earth4.setVisible(false);
071 
072     addSprite(earth4);
073     addSprite(earth3);
074     addSprite(earth2);
075     addSprite(earth);
076   }
077   /**Makes the hero ship*/
078   private void heroShip()
079   {
080     hero= new ImageSprite("SpaceshipCS.gif");
081     hero.setScale(.15);
082     hero.setLocation(.5.8);
083     addSprite(hero);
084   }
085   /**Makes the exaust flame for the hero ship*/
086   private void movingFlame()
087   {
088     flame= new ImageSprite("FlameCS.GIF");
089     flame.setScale(.1);
090     flame.setRotation(15.7);
091     flame.setLocation(.5.9);
092     addSprite(flame);
093   }
094   /**Makes 3 enemy ships (same picture)*/
095   private void ufoShip()
096   {
097     enemy1= new ImageSprite("UfoCS.gif");
098     enemy1.setScale(.15);
099     enemy1.setLocation(.5.1);
100     addSprite(enemy1);
101 
102     enemy2= new ImageSprite("UfoCS.gif");
103     enemy2.setScale(.15);
104     enemy2.setLocation(.2.1);
105 
106 
107     enemy3= new ImageSprite("UfoCS.gif");
108     enemy3.setScale(.15);
109     enemy3.setLocation(.8.1);
110 
111   }
112   /**Makes the boss ship*/
113   private void bossShip()
114   {
115     boss= new ImageSprite("BossCS.gif");
116     boss.setScale(.6);
117     boss.setLocation(.5.1);
118     addSprite(boss);
119 
120   }
121   /**Makes a boundary for the enemy ships to bounce of off*/
122   private void invsWall()
123   {
124     wall1=new OutlineSprite(new LineSprite(0001));
125     wall1.setSize(2);
126     wall1.setLocation(00);
127     wall1.setVisible(false);
128     addSprite(wall1);
129 
130     wall2=new OutlineSprite(new LineSprite(0001));
131     wall2.setSize(2);
132     wall2.setLocation(10);
133     wall2.setVisible(false);
134     addSprite(wall2);
135 
136     wall3=new OutlineSprite(new LineSprite(0010));
137     wall3.setSize(2);
138     wall3.setLocation(01);
139     wall3.setVisible(false);
140     addSprite(wall3);
141 
142     wall4=new OutlineSprite(new LineSprite(0010));
143     wall4.setSize(2);
144     wall4.setLocation(00);
145     wall4.setVisible(false);
146     addSprite(wall4);
147   }
148   /**Keeps enemies on screen by bouncing off of invisible walls*/
149   private void bounceEnemy()
150   {
151     enemy1.bounceOffOf(wall1);
152     enemy2.bounceOffOf(wall1);
153     enemy3.bounceOffOf(wall1);
154 
155     enemy1.bounceOffOf(wall2);
156     enemy2.bounceOffOf(wall2);
157     enemy3.bounceOffOf(wall2);
158 
159     enemy1.bounceOffOf(wall3);
160     enemy2.bounceOffOf(wall3);
161     enemy3.bounceOffOf(wall3);
162 
163     enemy1.bounceOffOf(wall4);
164     enemy2.bounceOffOf(wall4);
165     enemy3.bounceOffOf(wall4);
166 
167     boss.bounceOffOf(wall1);
168     boss.bounceOffOf(wall2);
169   }
170 
171   /**Keeps Score in game*/
172   private void score()
173   {
174     setScore(0);
175     score=new StringSprite ("Score:"+getScore());
176     score.setLocation(0.250.95);
177     score.setSize(0.15);
178     score.setColor(getColor("white"));
179     score.rightJustify();
180     addSprite(score);
181   }
182 
183   /**Help Text*/
184   private void helpText()
185   {
186     String helpText=
187         "Click to shoot<br>"+
188         "Don't try moving because you can't<br>"+
189         "Your ship is the last barrier between the earth's life and death situation<br>"+
190         "As your score grows the Mother ship will add more enemies!<br>"+
191         "Good Luck";
192     setHelpText(helpText);
193   }
194 
195   /**Creates a message for when you lose*/
196   private void fail()
197   {
198     lose=new StringSprite ("You Lose");
199     lose.setLocation(.5.5);
200     lose.setSize(.8);
201     lose.setColor(getColor("White"));
202     addSprite(lose);
203   }
204 
205   /**Creates a message for when you win*/
206   private void victory()
207   {
208     win=new StringSprite ("Victory is Yours!");
209     win.setLocation(.5.5);
210     win.setSize(.6);
211     win.setColor(getColor("White"));
212     addSprite(win);
213   }
214 
215   /**Creates a message for when the level changes to 2*/
216   private void levelTwo()
217   {
218     lvl2=new StringSprite ("Level 2");
219     lvl2.setLocation(.5.5);
220     lvl2.setSize(.6);
221     lvl2.setColor(getColor("White"));
222     addSprite(lvl2);
223   }
224 
225   /**Creates a message for when the level changes to 3*/
226   private void levelThree()
227   {
228     lvl3=new StringSprite ("Level 3");
229     lvl3.setLocation(.5.5);
230     lvl3.setSize(.6);
231     lvl3.setColor(getColor("White"));
232     addSprite(lvl3);
233   }
234 
235   /**Creates a message for to alert player to destroy boss*/
236   private void killBoss()
237   {
238     kill=new StringSprite ("Destroy the Boss!!!");
239     kill.setLocation(.5.5);
240     kill.setSize(.6);
241     kill.setColor(getColor("White"));
242     addSprite(kill);
243   }
244 
245   /**Handles hero bullets*/
246   private Sprite heroBullet()
247   {
248     for(Sprite single: blueBullet)
249     {
250       if(single.isVisible()==false)
251       {
252         return single;
253       }
254       if(single.getLocation().y<0)
255       {
256         return single;
257       }
258     }
259 
260     Sprite bullet=new LineSprite(0001);
261     bullet.setSize(0.1);
262     bullet.setVisible(false);
263     bullet.setColor(getColor("cyan"));
264 
265     ProjectileTransformer bulletTransformer=new ProjectileTransformer(0, -0.9);
266     bullet.addTransformer(bulletTransformer);
267 
268     addSprite(bullet);
269     blueBullet.add(bullet);
270 
271     return bullet;
272   }
273 
274   private Sprite bossBullet()
275   {
276     for(Sprite singl3: violetBullet)
277     {
278       if(singl3.isVisible()==false)
279       {
280         return singl3;
281       }
282       if(singl3.getLocation().y>1)
283       {
284         return singl3;
285       }
286     }
287 
288     missle=new OvalSprite(12);
289     missle.setSize(.2);
290     missle.setVisible(false);
291     missle.setColor(getColor("red"));
292 
293     ProjectileTransformer missleTransformer=new ProjectileTransformer(0.08);
294     missle.addTransformer(missleTransformer);
295 
296     addSprite(missle);
297     violetBullet.add(missle);
298 
299     return missle;
300 
301   }
302 
303   /**Allows you to shoot by clicking*/
304   private void heroShoot()
305   {
306     if(getClick2D()!=null)
307     {
308       Sprite available=heroBullet();
309       available.setLocation(hero.getX(), hero.getY()-hero.getSize()/2);
310       available.setVisible(true);
311     }
312   }
313 
314   private void bossShoot()
315   {
316     for(Sprite bullet: blueBullet)
317     {
318       if(boss.isVisible() && bullet.isVisible() && boss.intersects(bullet&& !enemy1.isVisible())
319       {
320         Sprite availabl3=bossBullet();
321         availabl3.setLocation(boss.getX(), boss.getY()-boss.getSize()/2);
322         availabl3.setVisible(true);
323       }
324     }
325   }
326 
327 
328   /**Shooting enemies adds 25 to score, boss adds 50, missle adds 20*/
329   private void handleBulletEnemyCollision()
330   {
331     for(Sprite bullet: blueBullet)
332     {
333       if(enemy1.isVisible() && bullet.isVisible() && enemy1.intersects(bullet))
334       {
335         enemy1.setVisible(false);
336         bullet.setVisible(false);
337         enemy1.setLocation(.5.1);
338         enemy1.setVisible(true);
339 
340         int startscore = getScore();
341         setScore(startscore+25);
342         score.setText("Score:"+getScore());
343       }
344       if(enemy2.isVisible() && bullet.isVisible() && enemy2.intersects(bullet))
345       {
346         enemy2.setVisible(false);
347         bullet.setVisible(false);
348         enemy2.setLocation(.2.1);
349         enemy2.setVisible(true);
350 
351         int startscore = getScore();
352         setScore(startscore+25);
353         score.setText("Score:"+getScore());
354       }
355       if(enemy3.isVisible() && bullet.isVisible() && enemy3.intersects(bullet))
356       {
357         enemy3.setVisible(false);
358         bullet.setVisible(false);
359         enemy3.setLocation(.8.1);
360         enemy3.setVisible(true);
361 
362         int startscore = getScore();
363         setScore(startscore+25);
364         score.setText("Score:"+getScore());
365       }
366       if(boss.isVisible() && bullet.isVisible() && boss.intersects(bullet&& !enemy1.isVisible())
367       {
368         bullet.setVisible(false);
369 
370         int startscore = getScore();
371         setScore(startscore+50);
372         score.setText("Score:"+getScore());
373       }
374       if(missle!=null && missle.isVisible() && bullet.isVisible() && missle.intersects(bullet&& !enemy1.isVisible())
375       {
376         bullet.setVisible(false);
377         missle.setVisible(false);
378 
379         int startscore = getScore();
380         setScore(startscore+20);
381         score.setText("Score:"+getScore());
382       }
383     }
384   }
385 
386   /**Adds damage to the earth when hero is hit by enemy 1*/
387   private void handleHeroEnemy1Collision()
388   {
389     if(enemy1.isVisible() && enemy1.intersects(hero&& earth.isVisible())
390     {
391       enemy1.setVisible(false);
392       earth.setVisible(false);
393       earth2.setVisible(true);
394       enemy1.setLocation(.8.1);
395       enemy1.setVisible(true);
396     }
397 
398     if(enemy1.isVisible() && enemy1.intersects(hero&& earth2.isVisible())
399     {
400       enemy1.setVisible(false);
401       earth2.setVisible(false);
402       earth3.setVisible(true);
403       enemy1.setLocation(.5.1);
404       enemy1.setVisible(true);
405     }
406 
407     if(enemy1.isVisible() && enemy1.intersects(hero&& earth3.isVisible())
408     {
409       enemy1.setVisible(false);
410       earth3.setVisible(false);
411       earth4.setVisible(true);
412       hero.setVisible(false);
413       flame.setVisible(false);
414       enemy1.setLocation(.5.1);
415       enemy1.setVisible(true);
416       fail();
417     }
418   }
419 
420   /**Adds damage to the earth when hero is hit by enemy 2*/
421   private void handleHeroEnemy2Collision()
422   {
423     if(enemy2.isVisible() && enemy2.intersects(hero&& earth.isVisible())
424     {
425       enemy2.setVisible(false);
426       earth.setVisible(false);
427       earth2.setVisible(true);
428       enemy2.setLocation(.8.1);
429       enemy2.setVisible(true);
430     }
431 
432     if(enemy2.isVisible() && enemy2.intersects(hero&& earth2.isVisible())
433     {
434       enemy2.setVisible(false);
435       earth2.setVisible(false);
436       earth3.setVisible(true);
437       enemy2.setLocation(.5.1);
438       enemy2.setVisible(true);
439     }
440 
441     if(enemy2.isVisible() && enemy2.intersects(hero&& earth3.isVisible())
442     {
443       enemy2.setVisible(false);
444       earth3.setVisible(false);
445       earth4.setVisible(true);
446       hero.setVisible(false);
447       flame.setVisible(false);
448       enemy2.setLocation(.5.1);
449       enemy2.setVisible(true);
450       fail();
451     }
452   }
453 
454   /**Adds damage to the earth when hero is hit by enemy 3*/
455   private void handleHeroEnemy3Collision()
456   {
457     if(enemy3.isVisible() && enemy3.intersects(hero&& earth.isVisible())
458     {
459       enemy3.setVisible(false);
460       earth.setVisible(false);
461       earth2.setVisible(true);
462       enemy3.setLocation(.8.1);
463       enemy3.setVisible(true);
464     }
465 
466     if(enemy3.isVisible() && enemy3.intersects(hero&& earth2.isVisible())
467     {
468       enemy3.setVisible(false);
469       earth2.setVisible(false);
470       earth3.setVisible(true);
471       enemy3.setLocation(.5.1);
472       enemy3.setVisible(true);
473     }
474 
475     if(enemy3.isVisible() && enemy3.intersects(hero&& earth3.isVisible())
476     {
477       enemy3.setVisible(false);
478       earth3.setVisible(false);
479       earth4.setVisible(true);
480       hero.setVisible(false);
481       flame.setVisible(false);
482       enemy3.setLocation(.5.1);
483       enemy3.setVisible(true);
484       fail();
485     }
486   }
487 
488   /**Adds damage to the earth when hero is hit by boss bullet*/
489   private void handleHeroBossCollision()
490   {
491     if(missle!=null && missle.isVisible() && missle.intersects(hero&& earth.isVisible())
492     {
493       missle.setVisible(false);
494       earth.setVisible(false);
495       earth2.setVisible(true);
496     }
497 
498     if(missle!=null && missle.isVisible() && missle.intersects(hero&& earth2.isVisible())
499     {
500       missle.setVisible(false);
501       earth2.setVisible(false);
502       earth3.setVisible(true);
503     }
504 
505     if(missle!=null && missle.isVisible() && missle.intersects(hero&& earth3.isVisible())
506     {
507       missle.setVisible(false);
508       earth3.setVisible(false);
509       earth4.setVisible(true);
510       hero.setVisible(false);
511       flame.setVisible(false);
512       fail();
513     }
514   }
515 
516   class Level2Delay extends TimedAction
517   {
518     public void act()
519     {
520       lvl2.setVisible(false);
521     }
522   }
523 
524   class Level3Delay extends TimedAction
525   {
526     public void act()
527     {
528       lvl3.setVisible(false);
529     }
530   }
531 
532   /**Levels achieved depending on your score*/
533   private void levelUp()
534   {
535     if (getScore() == 300)
536     {
537       addSprite(enemy2);
538 
539     }
540     if (getScore() == 800)
541     {
542       addSprite(enemy3);
543 
544     }
545     if (getScore() == 1475)
546     {
547       enemy2.setVisible(false);
548       enemy3.setVisible(false);
549     }
550 
551     if (getScore() >= 1500)
552     {
553       enemy1.setVisible(false);
554 
555     }
556 
557     if (getScore() >= 3000)
558     {
559       boss.setVisible(false);
560       victory();
561     }
562   }
563 
564   /**handle input and game events*/
565   public void advance()
566   {
567     handleBulletEnemyCollision();
568     handleHeroEnemy1Collision();
569     handleHeroEnemy2Collision();
570     handleHeroEnemy3Collision();
571     handleHeroBossCollision();
572     bounceEnemy();
573     heroShoot();
574     levelUp();
575     bossShoot();
576     //schedule(new Level2Delay(), 1.0);
577     //schedule(new Level3Delay(), 1.0);
578   }
579 }


Download/View Curtis/FinalProj.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