Icarus.Logic
This guy provides us with controllers.
Singleton Implementation.
The default controller.
The dictionary of registered controllers. This is so that we don't have to look up the type through reflection every time.
Initializes the controller factory.
Registers the controller type with the dictionary.
Returns the type corresponding to the name passed in, or null if the type is undefined.
Returns a controller for the specified type.
Returns a controller for the type whose fully qualified name is supplied. Of course, note that if the specified type is not actually a controller, then bad things will happen (exceptions).
Singleton Implementation.
Returns the default controller for objects.
This is the default controller that doesn't really do anything.
The implementors of this interface are controllers that can control a world object.
Updates the world object passed in.
I am the heart of the Icarus Game Engine
I basically cause everything to start moving, sort of like a Spark Plug.
I am a Singleton and I get started when the user turns the key by
executing the executable created by the Runner project.
This is the stack of game states we have running.
This tells us if we are running, paused or stopped.
Private Constructor for the Game Engine
It is a Singleton so noone should ever touch the Constructor
Pushes a game state onto the game state stack. The state on top of the stack is always the active one.
The new active state.
Pops the current state off the state stack. The previous active state will become active once again.
Renders the current state.
Render parameters
Start the game engine.
Pause the game engine.
Stop the game engine. Note that this will pop all the states, so we stop cleanly.
The function that needs to be run in its own thread. This controls the game engine.
The Singleton GameEngine instance
The current state of the game engine.
I am a combination of Relations that define who
my enemies and friends are.
A Relation is composed of a friend and an enemy
and is loaded as a script.
Initialize the GameFaction object to default values
The faction Name
Just a string
I contain the Vital information necessary for a great game.
I, personally, love value types.
Print the properties of the object
Convert the GameProperties into a string Representation
GameProperties string representation
This should hold the health of the current Game Object.
This should contain the damage inflicted by the object
upon unfriendly objects during a collision
I am a singleton which can be used to retrieve Game Engine settings.
Members are straightforward to access.
Defines the game difficulty, changes the AI, and is used by Game Calculations.
The timescale is used to define the number of times per
second that the GameEngine executes to update the world.
Defines whether cheats are on or off.
Defines how many particles are pre-allocated when a level loads.
Defines the number of particles to dynamically load at a time
when the max number of particles is infinite.
Defines how many items are pre-allocated when a level loads.
Defines the number of items to dynamically load at a time
when the max number of items is infinite.
Defines how many actors are pre-allocated when a level loads.
Defines the number of actors to dynamically load at a time
when the max number of actors is infinite.
Defines how many terrain world objects are pre-allocated when a level loads.
Defines the number of terrain ojects to dynamically load at a time
when the max number of terrain objects is infinite.
Defines how detailed the Physics calculations are.
Defines the maximum number of collision boxes in a level
The maximum internal collision rectangles a collision box can hold
The maximum internal collision triangles a collision box can hold
This defines the time between updates in milliseconds, default is 22 (45fps)
The maximum number of stages per level
Uses Icarus preset Game settings as defined in the variable comments.
Load GameSettings from a File.
Sets the settings to the Icarus Defaults then loads the settings from
fileName and replaces the settings specified.
The fileName of settings to replace defaults.
Returns the instance of the GameSettings object
Defines the maximum number of collision boxes in a level
Defines the maximum number of internal collision rectangles
a collision box can hold
Defines the maximum number of internal collision triangles
a collision box can hold
A Negative difficulty should cause all enemies to freeze in place
(allowing debugging to take place).
A Positive difficulty becomes more difficult with increasing values.
Lowest difficulty is 0.
This sets the game's TimeScale.
The timescale values can range from FLOAT_MIN to FLOAT_MAX.
Whether the full range is supported, doesn't matter.
Negatives don't matter, only the magnitude is used.
A higher number than 1.0f will result in more updates occuring per second.
Numbers between 0 and 1.0, exclusive, result in fewer
updates and, thus, the game moves "slower".
Activating cheats can turn on things like God Mode, which negate damage
effects to the player, as well as various other nifty debugging tools.
A value of 0 means that infinite particles are allowed.
In the case of infinite particles, particles will be loaded dynamically
sv_particleLoadRate at a time.
Dynamic loading is much slower, but requires much less memory.
This defines the number of particles to dynamically load at a time
when the max number of particles is infinite.
A value of 0 means that infinite items are allowed.
In the case of infinite items, items will be loaded dynamically
sv_itemLoadRate at a time.
Dynamic loading is much slower, but requires much less memory.
This defines the number of items to dynamically load at a time
when the max number of items is infinite.
A value of 0 means that infinite actors are allowed.
In the case of infinite actors, actors will be loaded dynamically
sv_actorLoadRate at a time.
Dynamic loading is much slower, but requires much less memory.
This defines the number of actors to dynamically load at a time
when the max number of actors is infinite.
A value of 0 means that infinite terrain objects are allowed.
In the case of infinite terrain objects, terrain objects will be
loaded dynamically sv_terrainObjectLoadRate at a time.
Dynamic loading is much slower, but requires much less memory.
This defines the number of terrain objects to dynamically load at a time
when the max number of terrain objects is infinite.
This may cause faster algorithms to be used in place of slower,
more precise algorithms.
This varies on Physics Engine implementation/mode.
Default value is 0 (Full Detail), negative values lower
detail and positive values (may) increase detail.
This stores the time between updates in milliseconds.
Note that the variable sv_timescale speeds up or slows down the
game itself, this variable will affect the magnitude of vectors in
the Physics Engine and alter the Physics themselves
The maximum number of stages per level
This is an adapter of the IGameState stuff, so that we don't have to implement all the functions.
The interface that all game states must implement.
Called when we enter the state.
Called at every iteration of the game engine loop.
The numbher of milliseconds since the function was last called.
Gets called when the state needs to be rendered.
This function will be called when the state needs to be paused to be revived later on.
This function will be called when the state is revived after a previous pause.
Called when we exit the state.
Form for creating and editng levels.
Provides for saving and loading levels.
Executes the Level Builder
Initialize the LevelBuilder object
Clean up any resources being used.
Required method for Designer support - do not modify
the contents of this method with the code editor.
This class provides the functionality of being able to
save and load levels. The levels are saved as xml files
on the harddrive.
The instance of this loader
Loads a level from an XML file.
The filename of the level XML file.
The loaded level or null if no level could be loaded.
Saves a level to an XML file.
The filename used to save the level XML file.
True for success, False for failure.
Returns the list of ids of available levels.
The Singleton LevelLoader instance
This is the root state for the game engine. Basically, it makes sure that everything dies when we quit.
Summary description for CollisionBox.
The amount of damage this collisionbox does.
Rectangular bounding box of this collision box
Array of rectangles for more precise collisions within
this collision box
Array of triangles for more precise collisions within
this collision box
Original width of bounding box that does not change
Orgiginal height of bounding box that does not change
Text Description of this object for level editing
-Performs actions on a PO/WO specific to this collision box.
-Basic functionality only stops the PO/WO where the collision
took place.
-This function should be overridden for specific collision boxes
such as teleporters, jump pads, ice...
The collision rect that was hit
The PO/WO that hit the rect
An action represented in PhysicsSettings.enumActions
This can be called to set properties specifically when making
a prefab collision box. i.e: CollisionBoxFloor, CollisionBoxWall, etc
Gets or sets the damage this collision box does to merc
Rectangular bounding box of this collision box
Array of rectangles for more precise collisions within
this collision box
Array of triangles for more precise collisions within
this collision box
Original width of bounding box that does not change with vel
Original height of bounding box that does not change with vel
A text Description of this object for level editing
Summary description for CollisionBoxCD.
The spark that happens after a CD hits something
Handles collisions for CDs
the cd bounding box
the po that the cd hit
Summary description for CollisionBoxEnemyDefault.
The direction to throw merc on collision
Defined in PhysicsSetting.enumDirection
Left
Right
Center - throws left or right, which ever is closer
Contructor
Handles collisions with all types of objects and enemy default.
colliding rectangle
po to be affected
Gets or sets the direction this collision box throws merc
Summary description for CollisionBoxFloor.
Sets the internal FloorRectangle's location
This moving box needs access to the world object that is holding it
This particular box needs to know things about the world obj holding it
Constructionering
Allowing the world obj to set a ref to itself
This is specially made for the tux robot hand. It should only
be put in a MovingPlatform worldobject.
This particular box needs to know things about the world obj holding it
Construction
Allowing the world obj to set a ref to itself
Summary description for CollisionBoxSlopeBL.
Sets the internal TriangleBL location
Summary description for CollisionBoxSlopeBR.
Sets the internal TriangleBR location
Summary description for CollisionBoxSlopeTL.
Sets the internal TriangleTL location
Summary description for CollisionBoxSlopeTR.
Sets the internal TriangleTR location
Summary description for CollisionBoxTransition.
The health that this transition will set to the player
The index of the next stage to be displayed
The x coordinate to place merc in the next stage
The y coordinate to place merc in the next stage
The x coord of the new place to center the stage
The y coord of the new place to center the stage
Construction
gets or sets the amount of health this transition gives the player
The index of the next level
X location of merc after transition
Y location of merc after transition
X location to set screen center to after transition
Y location to set screen center to after transition
Summary description for CollisionBoxWall.
Sets the internal WallRectangle's location
Summary description for CollisionBoxWhip.
whether or not to show spark on whip
This particular box needs to know things about the world obj holding it
Handles collisions with a whip
Rect that is being collided with
PO to be affected
Allowing the world obj to set a ref to itself
Gets or sets whether a spark should be shown or not
Summary description for CollisionBoxZoom.
Whether or not to zoom
Turns on zooming when merc collides with this box
gets or sets whether or not to zoom
Summary description for MovingPlatform.
The World is composed of me.
All gameplay entities are derived from me and contain
this set of standard features.
I contain the necessary properties needed by any
Physical universe as proposed by Sir Isaac Newton
so long ago.
I also contain useful information such as my Inertia,
which is a measure of my stubbornness to change motion,
as well as my CollisionMask, which defines my girth.
The implementors of this interface can be viewed on screen.
Gets the location of the viewable in world coordinates.
Gets the id of the animation to use for the viewable.
The coeffecient multiplied to velocities on a collision.
This can be used to create object with different levels
of "bouncing recoil"
The number of collisions this object will make
before it is removed from the world. 0 = infinite.
The amount of time(ms) this object will live before
it is removed from the world. 0 = infinite.
This is the time of creation of an object. It is used
in conjunction with iTimeToLive to remove the object
after it has been alive too long.
State that represents the current action of the object
Holds the last action state of this player.
Used for determining when states have changed.
The collision box for this PO. This box is so this object has
a reference to the smaller internal bounding rectangles located
in this bounding box.
X distance from the location to the collision box anchor
Y distance from the location to the collision box anchor
Me controller.
Generate a generic Physics Object
All members are set to empty/default values
Vectors are set to 0
Sets the animation with the specified parameters.
Output the Physics Object information to Console
Convert the contents of the PhysicsObject to string
for debugging purposes
A string containing the information
Returns the current direction up,down,left,right,upleft,upright,downleft,downright
An enumDirection from PhysicsSettings.
This method determines if a physics object has lived longer
than its timetolive value or if it still has more time to live.
true = still has not reached time limit
false = has reached time limit.
This will be called every time the physics object is updated.
The id of the animation to use for the viewable.
Allows access to the current frame for position logic
X distance from the location to the collision box anchor
Y distance from the location to the collision box anchor
The collision box for this PO
The current action being performed
The last action state of this player
Provides usable access to the birthdate of a physics object.
Allows access and modification of the number of collisions
an object will make before it is removed from the world.
0 = infinite.
Allows acces and modification of the time that an object will
remain in the world before it is removed. 0 = infinite.
This sets the Terminal Velocity of an Object
A value of 0 or smaller means there is no Terminal Velocity
Default is null (use global gravity)
Note that Team RETRO's classic game physics can easily be
implemented by setting the terminal velocity to something
less than initial velocity (i.e. move up and down at same rate)
This sets the current gravity to be used
Can be negative (accelerate upwards), zero means no gravity
This is a constant acceleration in the j direction
Default is null (use global gravity)
Note that Classic gameplay issues such as underwater and space
Physics can be implemented by varying the gravity (hint, hint
underwater Mario level (: )
This defines the current Location of the Physics
Object.
This is unscaled to world Coordinates.
This defines the velocity of the Physics Object.
This is unscaled to World Coordinates
This defines the angular velocity of the Physics Object.
Angular Velocity = rotational velocity.
This is unscaled to World Coordinates.
This defines the current angle of the object.
This should be used by the Renderer to properly
rotate the object.
This needs to be scaled and then sent to the
renderer for it to do an appropriate rotation.
This is the acceleration of the Object
This is in Physics Coordinates.
This is the angular acceleration of the object.
This is in Physics Coordinates.
The Interia of the body.
This isn't what causes an object to slow down
as some who didn't pay attention to Newton's
First Law of motion might think.
This is the reluctance of the object to move.
This is modeled by delayed movements or by
dividing the acceleration by this.
It would make sense to just use the acceleration
uniquely, but then recoils would become
complicated.
Gives usable access to the fBounceCoefficient
Returns the controller for this object.
Gets the name of the controller type or sets the controller when controller type is set. This is mainly done for XML purposes.
Initializes all WorldObject structures to
default values
This function destroys me
(actually, I'm not even sure what this does to me yet)
This prints the World Object
Converts the World Object data into a string
Adds the child object to the list of children of this world object.
The child to be added
Remoes the child object from the list of children of this world object.
The child to be removed
Returns the number of children of this world object.
Returns the index-th child object.
The WorldObject's Game properties
The WorldObject's Faction
Gets or sets the array of children. This is for serialization purposes only. Use the appropriate methods for other stuff.
The distance this platform moves before reversing direction
The speed at which the platform moves
The direction this platform is moving currently
The initial position of this moving platform
Collision box for this
gets or sets the distance the platform moves before reversing direction
gets or sets the speed at which this platform moves
gets for sets the initial point of this moving platform
gets or sets the current direction
Summary description for MovingPlatformHorizontal.
controls the movement of this moving platform
Summary description for MovingPlatformVertical.
controls the movement of this moving platform
I am the Physics Engine Singleton
I handle all aspects of Physical calculation
Primarily, I change the positions of objects in
the world based upon their velocities and accelerations.
I also prevent objects from leaving the bounds of the world
as well as handle the process of deciding when
they collide with another object.
My buddy, the Logic module, takes care of deciding what to do
with the collision itself, I just figure out there is one.
This is a reference to the current level's collision mask bitmap
Updates the list of WorldObjects for the next iteration
A list of WorldObjects, note that no type checking is made on these
objects and, as such, it is assumed that they are WorldObjects.
Check for collisions with all the children of a worldobject
The world object with children
the physics object that is being tested for collisions
Check for collisions between two children
The world object with children
the physics object that has children to test
Updates the current vectors of the Physics Object
Currently, AngularVelocity is not taken into account when
updating Velocity
Object whose vectors will be updated
Update the Position of the Physics Object using the Vectors already defined
Currently, AngularVelocity is ignored as are bounds checks
Object whose position needs to be updated
This function will cause a recoil between two objects based on
Intertia and both types of velocity.
TODO: Implement the above, currently Intertia is not taken into
account and a purely elastic, pure recoil calculation is made.
That sorta sucks for anything but Zero G, equal Intertia settings.
po1
po2
Physics Engine Instance
Gives usable access to the collision mask bitmap
Current Level reference
Summary description for PhysicsGeek.
This class handles the collision methods needed for a
physics player. A physics player is a physics object
that is used as a character. The player controlled by
the user or the enemies fighting the user are two examples
oh physics players.
Used to determine if player should stop walking when he hits the ground
Causes the player to be hurt or not when attacked
The number of engine iterations that the player is invulnerble
The number of invulneralbe iterations so far
The number of iterations this player should flicker
when they are about to die
The number of iterations this player has flickered
Instantiate a Player Object -- called a Physics Player by the
Physics Engine
Starts the player walking left and puts him in the correct
action state
Starts the player walking right and puts him in the correct
action states
Stops the player from walking if he is currently walking
Stops the player from doing whatever it might be doing and causes it to just stand there
Make this player jump
Gets or sets whether this player is vulnerable
Gets or sets the limit of invulnerable iterations
Gets or sets the current number of invulnerable interations
gets or sets the number of iterations this player will flicker while dieing
gets or sets the number of iterations this player has flickered
Gets or sets a boolean used to determine if player should stop walking
when he hits the floor.
The collision box used when standing
The collision box used when attacking
This guy makes specific special updates.
For example, it changes animations depending on current states.
Summary description for PhysicsGNURobot.
Starts the player walking right and puts him in the correct
action states
Causes this GNU bot to do a flame attack
Performs specific updates on teh GNU bot. Including changing of animations
and changing attack parameters
Summary description for PhysicsMerc.
The number of engine interations the whip
remains visable
the number of engine interations the whip has been displayed
The spark that shows up when the whip hits something
Collision box for whip that hits enemies
collision box for whip that does not hit enemies
The number of consecutive jumps that merc can make
The number of consecutive jumps merc has made
Whether or not merc is throwing a CD
Perform a whip attack
Causes merc to throw a CD
Make this player jump
This guy makes specific special updates.
For example, it changes animations depending on current states.
Gets or set the number of consecutive jumps merc is allowed to make
This class handles the collision methods needed for a
physics particle. A physics particle only collides
with the level collision mask and does not interact
with any other physics objects. They should be used
for explosions and similar effects.
Build the Physics Particle Object
Applies the time to live and
collisions to live settings specific to particles
Summary description for PhysicsRectangle.
X value of upper-left corner of rectangle
Y value of upper-left corner of rectangle
Height of this rectangle
Width of this rectangle
Text Description of this object for level editing
Determines if this rectangle and the passed rect intersect.
The rectangle to check for intersection with
True - intersection; False - no intersection
Changes this rectangle making the method call to the intersection
of the rectangle making the call and the rect passed.
The rectan
Performs the necessary operations on a PO
that has collided with this rectangle
Physics Object that collided with rectangle
Action to be taken after collision occurs(ie: remove, doNothing)
X value of upper-left corner of rectangle
Y value of upper-left corner of rectangle
Width of this rectangle
Height of this rectangle
A text Description of this object for level editing
I am a singleton which can be used to retrieve
Physics Engine settings.
Members are straightforward to access.
Determines whether god mode s on or not
The number of consecutive collisions allowed before it is
determined that the physics object is stuck and action should be taken.
The time a particle can live
The amount of bounces a particle can make
The upward velocity added when a player jumps.
The forward velocity added when a player jumps forward.
The velocity at which a player normally walks
Initializes the Physics Settings to the default values
Load the Physics Settings from fileName
Loads defaults then overwrites them with values in File
name of File to load
The isntance of the Physics Settings Singletone
gets or sets whether god mode is on
he forward velocity added when a player jumps forward.
The velocity at which a player normally walks
The upward velocity a player jumps with.
Particle bounce limit.
Particle life limit in ms.
Provides access to the number of consecutive collisions
an object is allowed to make before a special action has
to be taken. This is just for particles... a player could
collide with something many times and not be stuck
Provides access to white color for collision comparisons.
Provides access to red color for collision comparisons.
Provides access to green color for collision comparisons.
Provides access to blue color for collision comparisons.
Provides access to yellow color for collision comparisons.
Provides access to gray color for collision comparisons.
Provides access to black color for collision comparisons.
This sets the GLOBAL Terminal Velocity of an Object
This is used if a Physics Object's Terminal Velocity is null
A value of 0 or smaller means there is no Terminal Velocity
Default is:
v = 0*i + (10.0*default(sv_gravity))*j + 0*k
Note that Team RETRO's classic game physics can easily be
implemented by setting the terminal velocity equal to the
gravity (i.e. move up and down at same rate)
This sets the current GLOBAL gravity to be used
This gravity is used if the player gravity is set to null
Can be negative (accelerate upwards), zero means no gravity
This is a constant acceleration in the j direction
Default is:
v = 0*i + 9.81*j + 0*k
Note that Classic gameplay issues such as underwater and space
Physics can be implemented by varying the gravity (hint, hint
underwater Mario level (: )
The gravity that should be used for Merc
Constants used while detecting collisions
Defines the Up direction constant in Collisions
Defines the Down direction constant in Collisions
Defines the Left direction constant in Collisions
Defines the Right direction constant in Collisions
Defines the Up and Left (North-West) Direction
Defines the Up and Right (North-East) Direction
Defines the Down and Left (South-West) Direction
Defines the Down and Right (South-East) Direction
Defines the center (No) direction
Constants used while detecting collisions
Used when a Collision should have no changes
on the existence of the object
Defines that the collision should result in removal
of the object in question
Indicates that this obj should be checked for collisions
again before it is moved.
Actions states a player can be in
Summary description for PhysicsShortLife.
The number of game engine iterations this object should live
The number of iterations this obj flickers once it's life has ran out
The number of game egine iterations that this object has lived
The animation ID to use while flickering. The visible portion of the flicker.
Keeps track of age, then makes flicker, then removes.
action to be taken by physicsengine
gets or sets the number of game engine iterations that this worldobject lives
gets or sets the number of game engine iterations this object has lived
gets or set the number of iterations this obj flickers once it's life is over
Gets or sets the animation that is used during the "on" portion of flickering
Summary description for PhysicsTuxHand.
This is a child object. Basically, it means it's a subcomponent of another object. For instance, suppose we have the Merc world object. He could have a "whip" child object.
The anchor point for the child.
The parent world object.
Anchor Point. The anchor point is the coordinate of the parent object where the top-left corner of the child goes.
The parent of the child object.
The location of the child component.
Velocity of the child component.
Collision box for this
This class is just for differentiating whip collisions with
other objects and Edo's(Tux) head
Summary description for PhysicsTuxRobot.
Summary description for PhysicsWhip.
Collision box for this
I contain the points used in Physics Calculations
Don't mess with me.
Output information about the Point
Returns a new point that is the sum of this point and the one passed in.
Returns a string version of the point containing all values
of the Point (x,y,z) in text form
A string containing the representation
X value
Y value
Z value
Summary description for RectangleFloor.
Performs the necessary operations on a PO
that has collided with this rectangle
Physics Object that collided with rectangle
Action to be taken after collision occurs(ie: remove, doNothing)
Summary description for RectangleWall.
Performs the necessary operations on a PO
that has collided with this rectangle
Physics Object that collided with rectangle
Action to be taken after collision occurs(ie: remove, doNothing)
Triangles will be used as level collision shapes that can
be collided with. All Triangles must be right triangles for
simplicity. The right angle should be inforced in the level
builder.
Bounding rectangle of
Point 1 of triangle
Point 2 of triangle
Point 3 of triangle
The slope of a this triangle's Hyp.
Text Description of this object for level editing
Determines if this triangle intersects with the passed rectangle
Rectangle to check for intersection with triangle
True - intersection; false - no intersection
Performs the necessary operations on a PO
that has collided with this triangle
Physics Object that collided with triangle
Action to be taken after collision occurs(ie: remove, doNothing)
Calculates the bounding box of this triangle
Calculate this triangle's hypotenuse slope
Slope of Hypotenuse
Provides access to the rectangle bounding box
of this triangle.
Provides access to this triangles point 1
Provides access to this triangles point 2
Provides access to this triangles point 3
The slope of this triangle's hypotenuse
A text Description of this object for level editing
Summary description for TriangleBL.
Performs the necessary operations on a PO
that has collided with this triangle
Physics Object that collided with triangle
Action to be taken after collision occurs(ie: remove, doNothing)
Summary description for TriangleBR.
Performs the necessary operations on a PO
that has collided with this triangle
Physics Object that collided with triangle
Action to be taken after collision occurs(ie: remove, doNothing)
Summary description for TriangleTL.
Performs the necessary operations on a PO
that has collided with this triangle
Physics Object that collided with triangle
Action to be taken after collision occurs(ie: remove, doNothing)
Summary description for TriangleTR.
Performs the necessary operations on a PO
that has collided with this triangle
Physics Object that collided with triangle
Action to be taken after collision occurs(ie: remove, doNothing)
I contain the vectors used in Physics Calculations
Don't mess with me.
Print Vector Information
Returns a string containing the vector information
A string with the vector information
Calculate the magnitude of this vector
Negates the vector (i.e. -1 * v)
the vector to be negated
Negated Vector of v
Returns true if magnitude(v1) >= magnitude(v2)
v1
v2
magnitude(v1) >= magnitude(v2)
Returns true if magnitude(v1) <= magnitude(v2)
v1
v2
magnitude(v1) <= magnitude(v2)
Returns true if magnitude(v1) < magnitude(v2)
v1
v2
magnitude(v1) < magnitude(v2)
Returns true if magnitude(v1) > magnitude(v2)
v1
v2
magnitude(v1) > magnitude(v2)
Performs cross multiplication from vec1 to vec2
First Vector
Second Vector
Normal vector of first two vectors
Scalar Multiply a Vector
dest = (src.i * scalar)i + (src.j * scalar)j + ...
The Vector in which the result will be stored
The Vector that will be multiplied
The scalar value to multiply the Vector with
Vector Addition
src1
src2
src1+src2 = (src1.i + src2.i) * i + ...
Vector Subtraction
src1
src2
src1+src2 = (src1.i + src2.i) * i + ...
Vector Addition, fastest method to use if dest = src1 or src2
dest = (src1.i + src2.i) * i + ...
src1
src2
Vector Subtraction, fastest method to use if dest = src1 or src2
dest = (src1.i - src2.i) * i + ...
src1
src2
Normalize the vector src (src / magnitude(src))
Vector to normalize, this is unaffected
Normalized Vector
i direction value
j direction value
k direction value
Magnitude of Vector
Summary description for ZoomTrigger.
The zoom factor to zoom to
The direction of zooming up, down
gets or sets the zoom factor to zoom to
Contains the necessary items used to describe a Game level.
Holds the information about the current list of WorldObjects,
the view background, the view terrain collision mask, and
other necessary information used to play the game level.
An array of all the stages this level contains.
The index of the current stage
Makes a new level.
The array of stages that belong to this level
The current stage of this level
The index of the current stage in the stages array
This is the representation of a single layer of background for the level. It's all fancy and parallax, and stuff.
The actual background animation.
Teh Parallax factor!!1! Read the documentation for the corresponding property.
The actual renderable used to display the background. See BackgroundRenderable property documentation for more information.
Sets the animation with the specified parameters.
Allows is to sort level backgrounds by parallax factor.
Gets the background animation.
Gets or sets how many times we need to tile the background vertically.
Gets or sets how many times we need to tile the background horizontally.
Gets or sets the parallax factor. The value of 0 means the background will be stationary. The value of 1 means it will be moving the same as the character. Stuff in between is stuff in between. Stuff outside the range... Hell, I don't know what will happen, but probably nothing good.
Gets the center of the background.
Gets the renderable thing that we acutally need to make the background. This needs to be used instead of the Animation property, because the background will sometimes need to be tiled.
Contains the necessary items used to describe a Game stage.
Holds the information about the current list of WorldObjects,
the view background, the view terrain collision mask, and
other necessary information used to play the game level.
This defines the scale from which the Physics Engine converts
its calculations into GameWorld.
Game settings for the level.
List of all items in the level.
List of all particles in the level.
List of all actors in the level.
List of all terrain objects.
This is the guy controlled by the user.
The list of backgrounds.
The collision boxes that cause collisions with this level
The zoom for the stage. See Field description for more info.
The center of the view for the stage.
The name of this stage
Makes a new level.
Returns the number of backgrounds we have.
Adds a background to the background arraylist
LevelBackground to be added to stage
Removed a background from the stage
The LevelBackground to be removed
Returns the index-th background.
This is VERY important.
This defines the scale from which the Physics Engine converts
its calculations into GameWorld.
The result is then truncated into an unsigned integer
and then used to place the object in the world
Gives usable access to the list of items.
Gives usable access to the list of particles.
Gives usable access to the list of actors.
Gives usable access to the list of terrain.
The collision boxes that cause collisions with this level
Gets or sets the list of backgrounds. This is purely for XML serialization purposes.
The world object that is controlled by the player.
The index into the array of actors of the one that is controlled by the player.
Gets or sets the zoom level for the display. The zoom level of 1 means the images appear precisely their size, the zoom level of 0.5 means everything is half size, etc. It might not be a good idea to set this to zero, as stuff would kinda disappear then.
Gets or sets the view center. That is basically the world coordinates of the point that will be in the center of the screen.
Gets or sets stage width.
Gets or sets stage height.
Gets the center of the level.
gets or sets this stages name