Jayson/art/Art

From ggc

Jump to: navigation, search

001 package Jayson.art;
002 //package art;
003 
004 import wiki.Wiki;
005 import fang.*;
006 import java.awt.*;
007 import java.awt.geom.*;
008 import java.util.ArrayList;
009 import Beta.OutlineTracker;
010 
011 /**
012  * Super random.  So random it hurts.
013  @author Jpark
014  */
015 public class Art extends GameLoop
016 {
017   /**Polygons for the Pointer Trail.*/
018   private PolygonSprite[] snakePolyArray = new PolygonSprite[20];
019   /**Random shape created every couple of frames.*/
020   private Sprite randomShape;
021   /**The polygon shapes for the sparkTracks to track.*/
022   private Sprite[] trackShapes = new Sprite[3];
023   /**The sound that plays when the player presses r.*/
024   private Sound explode = new Sound(Wiki.getMedia("Explosion3.wav"));
025   /**The sound that plays when the player clicks.*/
026   private Sound sparkSound = new Sound(Wiki.getMedia("Laser1.wav"));
027   /**The images that goes around the trackShapes*/
028   private ImageSprite[] sparkTracks = new ImageSprite[3];
029   /**The Animated sprite created by the Author.*/
030   private ImageSprite spark = new ImageSprite(Wiki.getMedia("Spark.gif"));
031   /**Click Location*/
032   private Point2D.Double clickLoc;
033   /**Track that outlines the track shapes.*/
034   private OutlineTracker[] tracks = new OutlineTracker[4];
035   /**Counts frames so the randomShape is not created so quickly.*/
036   private int frameCounter = 0;
037   /**Boolean variable so the randomized rotation of the
038    * Pointer Trail does not give a null exception*/
039   private boolean firstSnake = false;
040   /**StringSprites for the author name.*/
041   private StringSprite author = new StringSprite("Author: Jayson Park");
042   /**StringSprites for the title name.*/
043   private StringSprite title = new StringSprite("Title: RandoKladio");
044   /***/
045   private OutlineTracker circleTrack;
046   private Sprite circle = new OvalSprite(1,1);
047 
048 
049   /**sets up the game*/
050   public void startGame()
051   {
052     initArrays();
053     makeSprites();
054     addSprites();
055     setHelpText("<h1>RandoKladio</h1>" +
056                 "Press r to Clear Screen." +
057                 "Click to make a spark.");
058   }
059 
060   /**Initializes all of the Arrays*/
061   private void initArrays()
062   {
063     for(int makePoly = 0; makePoly < 20; makePoly++)
064     {
065       snakePolyArray[makePoly] = new PolygonSprite(6);
066     }
067     trackShapes[0] = new PolygonSprite(7);
068     trackShapes[1] = new PolygonSprite(5);
069     trackShapes[2] = new PolygonSprite(3);
070     for(int makeSparks = 0; makeSparks < 3; makeSparks++)
071     {
072       sparkTracks[makeSparks] = new ImageSprite(Wiki.getMedia("Spark.gif"));
073     }
074   }
075 
076   /**makes the sprites*/
077   private void makeSprites()
078   {
079     circle.setScale(0.1);
080     author.setLocation(.2.9);
081     title.setLocation(.2.1);
082     author.setScale(.3);
083     title.setScale(.4);
084     for (int sparkScale = 0; sparkScale < 3; sparkScale++)
085     {
086       sparkTracks[sparkScale].setScale(0.1);
087     }
088     makeOutlineShapes();
089     createTracks();
090     makeTracks();
091     addTracks();
092     for (int hideCounter = 0; hideCounter < 20; hideCounter++)
093     {
094       hideExtras(snakePolyArray[hideCounter]);
095     }
096   }
097 
098   /**Hides the pointer trail shapes at the beginning.*/
099   private void hideExtras(Sprite sprite1)
100   {
101     sprite1.setScale(0);
102     sprite1.setLocation(0,0);
103     sprite1.setColor(Color.black);
104   }
105 
106   /**Creates the shapes that deals with the Tracks*/
107   private void makeOutlineShapes()
108   {
109     trackShapes[0] = new PolygonSprite(7);
110     trackShapes[0].setLocation(.5.5);
111     trackShapes[0].setScale(.75);
112     trackShapes[1] = new PolygonSprite(5);
113     trackShapes[1].setLocation(.5.5);
114     trackShapes[1].setScale(.55);
115     trackShapes[2] = new PolygonSprite(3);
116     trackShapes[2].setLocation(.5.5);
117     trackShapes[2].setScale(.35);
118   }
119 
120   /**Creates the Tracks for the shapes to go around.*/
121   private void createTracks()
122   {
123     tracks[0] = new OutlineTracker(trackShapes[0]0.2);
124     tracks[0].setLooping(true);
125     tracks[1] = new OutlineTracker(trackShapes[1], -0.35);
126     tracks[1].setLooping(true);
127     tracks[2] = new OutlineTracker(trackShapes[2].45);
128     tracks[2].setLooping(true);
129     circleTrack = new OutlineTracker(circle, 1);
130     circleTrack.setLooping(true);
131   }
132 
133   /**Sets shapes to the track.*/
134   private void makeTracks()
135   {
136     for (int settingTracks = 0; settingTracks < 3; settingTracks++)
137     {
138       sparkTracks[settingTracks].setLocation(tracks[settingTracks].getCurrentPoint());
139       sparkTracks[settingTracks].setTracker(tracks[settingTracks]);
140     }
141   }
142 
143   /**Synthesis of two trackers*/
144   private void addTracks()
145   {
146     CompositeTracker composite = new CompositeTracker();
147     composite.addTracker(circleTrack);
148     composite.addTracker(tracks[0]);
149     sparkTracks[0].setLocation(tracks[0].getCurrentPoint());
150     sparkTracks[0].setTracker(composite);
151   }
152 
153   /**adds the sprites to the screen*/
154   private void addSprites()
155   {
156     for (int addTrack = 0; addTrack < 3; addTrack++)
157     {
158       canvas.addSprite(trackShapes[addTrack]);
159     }
160     for (int addSparkTrack = 0; addSparkTrack < 3; addSparkTrack++)
161     {
162       canvas.addSprite(sparkTracks[addSparkTrack]);
163     }
164     for (int addTrail = 0; addTrail < 20; addTrail++)
165     {
166       canvas.addSprite(snakePolyArray[addTrail]);
167     }
168     canvas.addSprite(author);
169     canvas.addSprite(title);
170   }
171 
172   /**Creation of the spark.gif after the player clicks
173    * Creates 0.5 seconds after click.*/
174   private void createSpark()
175   {
176     spark = new ImageSprite(Wiki.getMedia("Spark.gif"));
177     spark.setScale(0.02);
178     spark.setLocation(clickLoc);
179     scheduleRelative(new ClickDelay(spark)0.5);
180   }
181 
182   /**Sets Color/Location of the first sprite of the pointer trail
183    * to the second.  Also reduces the size.*/
184   private void incrementedTrail(Sprite sprite1, Sprite sprite2)
185   {
186     if(sprite1 != null)
187     {
188       sprite1.setColor(sprite2.getColor());
189       sprite1.setLocation(sprite2.getLocation());
190       sprite1.setScale(sprite2.getScale()-.005);
191     }
192   }
193 
194   /**Creating the pointer trail.*/
195   private void colorSnake()
196   {
197     for (int trailCount = 19; trailCount > 0; trailCount--)
198     {
199       incrementedTrail(snakePolyArray[trailCount], snakePolyArray[trailCount - 1]);
200     }
201     snakePolyArray[0].setColor(new Color(random.nextInt()));
202     snakePolyArray[0].setLocation(getPlayer().getMouse().getLocation());
203     snakePolyArray[0].setScale(0.1);
204   }
205 
206   /**Everything regarding the pointer trail except the creation.*/
207   private void snakeCoding()
208   {
209     if (firstSnake == false)
210     {
211       firstSnake = true;
212       colorSnake();
213     }
214     snakePolyArray[0].rotate(Math.random());
215     colorSnake();
216   }
217 
218   /**Randomizes the color of the Sprite that is sent.*/
219   private void colorRandomizer(Sprite spriteColorChange)
220   {
221     spriteColorChange.setColor(new Color(random.nextInt()));
222   }
223 
224   /**Removes all of the Sprites so the computer doesn't crash
225    * Recreates the Sprites.*/
226   private void reset()
227   {
228     explode.setSoundPosition(0);
229     explode.play();
230     canvas.removeAllSprites();
231     addSprites();
232   }
233 
234   /**Creates a random Shape every 15 frames.*/
235   public void randomShapes()
236   {
237     if(frameCounter == 15)
238     {
239       frameCounter = 0;
240       if (randomShape != null)
241       {
242         canvas.removeSprite(randomShape);
243       }
244       randomShape = new PolygonSprite((int)Math.ceil(Math.random()*12+3));
245       randomShape.setScale(Math.random()*0.25+.05);
246       randomShape.setLocation(Math.random()*0.9Math.random()*0.9);
247       colorRandomizer(randomShape);
248       canvas.addSprite(randomShape);
249     }
250     frameCounter++;
251   }
252 
253   /**Methods dealing with tracks in the advanced frame.
254    * Changes color and rotation.*/
255   public void trackFrames()
256   {
257     for (int colorCount = 0; colorCount < 3; colorCount++)
258     {
259       colorRandomizer(trackShapes[colorCount]);
260     }
261     trackShapes[0].rotate(.02);
262     trackShapes[1].rotate-.1);
263     trackShapes[2].rotate(.2);
264   }
265 
266   /**Changes color randomly for the 2 StringSprites*/
267   public void textFrames()
268   {
269     colorRandomizer(author);
270     colorRandomizer(title);
271   }
272 
273   /**Deals with anything in the advanceFrame for player interaction.*/
274   public void interactionFrame()
275   {
276     if (getPlayer().getKeyboard().getLastKey() == 'r')
277     {
278       reset();
279     }
280     Point2D.Double clickLoc2 = getPlayer().getMouse().getClickLocation();
281     if (clickLoc2 != null)
282     {
283       clickLoc = clickLoc2;
284       sparkSound.setSoundPosition(1);
285       sparkSound.play();
286       createSpark();
287     }
288   }
289 
290   /**handle input and game events*/
291   public void advanceFrame(double timePassed)
292   {
293     trackFrames();
294     textFrames();
295     interactionFrame();
296     randomShapes();
297     snakeCoding();
298   }
299 
300   /**Class to create and Image a specified time after a click.*/
301   private class ClickDelay implements Alarm
302   {
303     private Sprite spark;
304     public ClickDelay(Sprite sprite)
305     {
306       spark = sprite;
307     }
308 
309     public void alarm()
310     {
311       canvas.addSprite(spark);
312     }
313   }
314 }

Compiler Errors:
----------
1. ERROR in Jayson/art/Art.java (at line 30)
	private ImageSprite spark = new ImageSprite(Wiki.getMedia("Spark.gif"));
	                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The constructor ImageSprite(URL) is undefined
----------
2. ERROR in Jayson/art/Art.java (at line 72)
	sparkTracks[makeSparks] = new ImageSprite(Wiki.getMedia("Spark.gif"));
	                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The method setSoundPosition(int) is undefined for the type Sound
----------
5 problems (5 errors)

Download/View Jayson/art/Art.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