Philosophy, variables must have self explanatory names.
We start off simple with components that can be put together in one environment at a later stage.
Make a sphere Float suspended in air over terrain - Flat grid surface for now. To place sphere above grid it needs changeable parameters for altitude and x,y I would like them named like this: altitude = AltSphereZ location X coordinate = XSphereLoc location Y = YSphereLoc I also want each sphere to have a unique naming variable let's call this sphereUniqueID The sphere should be roughly 1,5 times the size of the platform diameter
Make sphere glow in a pulsating pattern from one intensity to another - cycle "low - high - low" then repeat Parameters for pulsechange changeSpeed = milliseconds before changing intensity setRGB = the color we start with shineIntensity = the brightness changeRGB = a different color fromShine = the brightness we start off with toShine = the brightness we end with The sphere should be mostly transparent... think plasma - think soap bubble
Collision detection on sphere if ship hits sphere - make ship disappear also shrink sphere size 1% Detect when pellet (from own ship) hits sphere) shrink siz1 0,1% Upon collision detection playback sound - REMEMBER create mute button on screen :)
Below the sphere I want a torus floating - For now just copy the parameters within the variables of the sphere above childOfSphere = UniqueID altitude = AltTorusZ location X coordinate = XTorusLoc location Y = YTorusLoc Todo: The "spacual" parameters of this is to be set by reading the "spacual" parameters of the sphere with the corresponding UniqueID So getter and setter methods need to be used eventually that can be called from an external controller keeping track of every sphere.
Place platform on terrain altitude = AltPlatformZ location X coordinate = XPlatformLoc location Y = YPlatformLoc You need to be able to move platform in X,Y direction on terrain however by pressing A you need to push platform up into the air on Z Axis - Please look at The numbers AltPlatformZ, XPlatformLoc, YPlatformLoc - Need to be readable from outside
Fire a pellet from the platform, from a specific location on the platform - pellet just goes straight up pelletPositionRelX - this is the position of CurrentPlatformLocationX +/- pelletPositionRelY this is the position of CurrentPlatformLocationY +/- pelletPositionRelZ this is the position of CurrentPlatformLocationZ pelletMoveX - this is the factor we want the pellet to move with in X direction - 0 pelletMoveY - this is the factor we want the pellet to move with in Y direction - 0 pelletMoveZ - this is the factor we want the pellet to move with in Z direction -0+N N=a number firePositionRelZ - is the parameter for height that needs to change, at a later stage other parameters need to be changeable, but for now we keep things simple. The start positions for each shot you get by reading from AltPlatformZ, XPlatformLoc, YPlatformLoc of uniqueID(x) where (x) is the content of variable uniqueID, in this case the value stored in sphereUniqueID - i.e. search all spheres for specifix value (x) then copy values to corresponding startpositions.
Detect when pellet (or any other object hits a sphere) Upon collission detection playback sound & shrink sphere shrinkFactorX shrinkFactorY shrinkFactorZ
LargeShip = UniqueID
Fly straight across top - middle of screen
Circle above spheres - at top of screen
Circle and lower altitude till right above spheres
Spiral top of screen
Spiral and lower altitude till right above spheres
Idea to describe path if this is not included in tool. pathDescription(x,y,z,w;x,y,z,w;x,y,z,w:) x=altitude = AltLargeShip location X coordinate = XLargeShipLoc location Y = YLargeShipLoc waittime w time to wait before moving to next position = waitTime You may already start to see a pattern here and a way to make it easier to keep track of the positions of all objects in the game by introducing a datastructure that can hold the position of all objects in the game, that way you'll only have one variable to search through for locations of objects, you may want to distinguish between stationary and non stationary objects. If using OOB (Object Oriented Programming) all objects could be children of/inherit from a grandparent object that contained the variables common to all game objects and accessor methods for manipulating the parameters. Same with how animation is done for different objects. But for now let's keep things as is.
- Unless completely done with above - some of the things below will likely be outsourced.
Create terrain and wrap in texture - desert texture will be provided
Q: What would you like me to do with ..... A: Make it go BOOM