Thursday, March 21, 2013

March update, getting older soon...

HFB game experiment and BB framework updated:

  • BB
    • TSpriteEngine, fixed some minor Z issues
    • New TSpriteEngine.SpritesAt() that returns the list of all sprites inside a rectangle 
    • New ISurface.GetRectangle()
    • New ILayer.GetSurfaceAt()
    • TSpriteEngine.Render() improved (list removed)
    • TAnimationSprite now updates the current sprite before testing collision.
    • TAnimationSprite.AnimationName now accepts an empty string (meaning that no animation is set)
    • gsPause removed from TGame state, now it is a variable
    • Fixed some bugs in the collision system
    • New ISprite.SetOnDie()
    • TSoundFactory now stores as cache IBuffer (not TSound)
    • TQueue<T> improved
    • TPolygons removed (didn't make sense)
    • Remove all TSprite method related to pointers for surface access since all of them can be done via GetSurface
    • TSuperSprite removed (never used/tested)
    • TInterfacedObjectEx = TObjectEx
    • Surface cache is now searched per index rather than hash
    • Buffers are finally sorted properly and selected automatically via hash (property SortBuffers, False by default)
    • Surface cache in sprite engine improved
    • TPolygonEx.GetHash() improved
    • New TPolygonEx.HasAlpha() (used for polygon hash so now we only have 0 or 1, not 0..255)
    • Render buffers now clean better the D3D stages
    • Some primitives were not filling properly the Z render buffer
    • Many memory leaks removed!, TAnimation,,TSpriteEngine ,TSpritePool ,TLayer ,TDummySprite ,TCollision ,TSurface2Poly ,TSurface ,TPolygons ,TLogHandler ,TSingleton ,TRenderBuffer ,TSoundFactory ,TEvents , TObjectPool, TConcurrentDictionary, TEvents

  • HBF
    • All game sprites are inherited from TElement 
    • New platform that can rotate around an axis
    • THero slope code refactored
    • New sprite var SLOPE
    • TGameSprite.IsDieAttribute() that accepts a cell
    • New prizes "Time", "Kill Them All" and "Immunity" (bitmaps, units and classes)
    • TGameSprite CreateItemAt() renamed to ConvertTile2Item()
    • When hero dies on top of a moving ball, the ball stops
    • THero.IsCollisionBottom() code cleaned
    • New element Rainbow (a bit silly just testing)
    • New enemy Titan
    • Hero now frees the samples (memory leak)
    • Some new samples (New metal sound, Titan uses it)
    • Some new music 
    • Removed some unused units 
    • Improved TSoundDispatcher, now all sounds are played via this class
    • Pause now pauses all playing sounds
    • Lava and water are not longer treated as solid so some enemies can move inside, like Titan
    • New SpriteFactory (file and class) (all sprite creation move to TSpriteFactory)
    • Pixel shader used then pausing enemies via pickup 
    • Hero cannot pickup coins when dying
    • Background does not longer move 
    • Background is now freed (memory leak)
    • SpriteEngineLayer2 is now freed (memory leak)
    • TSpriteFactory is now freed (memory leak)
    • Fixed a double free class with rotating platforms
    • New classesTNonGravityElement and TNonGravityEnemy, some enemies and elements inherit from them.
    • New enemy Chandelier 
    • All sprites now behave like hero (they interact with the environment since many functions were moved from THero to TGameSprite)
    • Ray more realistic (...)
    • Blob side collisions improved
    • Bomb side collisions improved
    • Titan side collisions improved
    • All tiles can now be "moving tapes" (before they were sprites)
    • When starting and finishing a level a fading effect is used 







Summer is coming soon!