Wednesday, 18 November 2009

Engine3.03 released

Expect more changes to come quickly to start with as bugs are found.
This version will be live by 9AM 19th November 2009
Template will be updated accordingly and so will the dll and xml files on the student shared game programming resources folder

Changes in this release include:

EngineManager
=============
altered - altered the way sprite layers are managed and rendered, this now allow you 4 independant sprite layers as well as a HUD and SpriteText layer. Sprites by default are assigned to layer0 which is rendered first, but you can opt for layer1, layer2 or layer3 (being the last of the four sprite layers rendered)

This has a knock on effect for layer displacement, a mechanism that can shift all items beloning to a layer - perfect for shake effects
---
removed - DisplaceHUDLayer
removed - DisplaceSpriteLayer
removed - DisplaceSpriteTextLayer
removed - DisplaceTextLayer

added - SpriteLayerOffset(), specifies an amount to offset the position of all sprites or text on the layer specified

added - SpriteLayerDisplace(), specifies an amount to add on to the current offset position of the layer specified

added - SpriteLayerGetOffsetX(), gets the X value of the given layer offset

added - SpriteLayerGetOffsetY(), gets the Y value of the given layer offset

added - SpriteLayerGetOffset(), gets the offset for the given layer
--
added - TrackDisplayOn(), this does the same as the Draw() method of the TrackHelper, but only requires a track reference, so it looks neater

added - TrackDisplayOff(), this will remove a track that is currently being displayed. if the track isn't being displayed it does nothing.


Event
=====
renamed - SpecifyEventHandler() changes to OnTick()

added - Ticks, property that keeps track of number of timers an event has elapsed

added - TimeRemaining, property for debugging purposes that tells you how many seconds are remaining for those events that have a time limit

added - OnKilled(), lets you specify a subroutine to call if the EventManager kills your event. This will happend if you added it to the EventManager using either AddEventRaiseUntil() or AddEventRaiseOnce(). This is perfect for shake effects or for countdown events such as highscore entry, you would have a one second event to keep track of the time and have OnKilled run a subroutine when time say 30 seconds elapses, this can leave the high score entry screen.


EventManager
============
added - AddEventRaiseUntil(), this lets you specify a number of seconds that an event is to be active before being automatically removed, useful for shake effects after large explosions (for instance you may have a boss sprite on a separate layer to all other sprites and want this to shake for a couple of seconds when you have done a serious bit of damage)

Enum changes
============
renamed - SpriteDebugInfo changes to SpriteDebug

renamed - CollisionAction.alignMovingBounce changes to CollisionAction.movingBounce

completed - all enums are now fully xml commented, that's 1750 lines of code sorted phew !

Alignment
AnimationMethod
Bin.Type
CollisionAction
CollisionMethod
CollisionMultiHit
CollisionState
CollisionType
CoordinateSystem
DeathAction
Debug
Direction
DirectionAccuracy
EndOfTrackAction
EnergyBarDirection
Fade
FrameDirection
GravitySystem
LastFrameAction
LayerType
LimitAction
MenuSelectMode
MenuType
MovementMode
Shape
Side
SpriteDebug
SpriteType
TagAlign
TagDisplay
TrackStepMode

just another 19000 lines of code to go in 61 class files :(

No comments:

Post a Comment