Saturday, October 18, 2014

Focusing on refactoring code and new backgrounds

As usual some bugs fixed here and there but focusing on creating better code, why?, because it will be the base for the next game.


  • Screens code refactored
  • New method IDriving. JumpTogether()
  • Added some fading in menus
  • Better use of IBubble rather than TTBubbleSpawner
  • Trail now has a timeout of 10 seconds 
  • More animated tiles in backgtounds
  • Fade speed can be adjusted via game property
  • Normal and mechanic enemies can now be crushed by moving items
  • Some class cast changed to IGameSprite 
  • Weird uses different colors 
  • All pickups now execute their specific code
  • Some pickup specific code moved to its corresponding class
  • New IDoor and IProfile interfaces
  • All own counters removed and now using Ticks
  • Gatashi flapping sound stops after he dies
  • Many new background s
  • More stuff moved into Tick() rathern than Render()
  • Fight sets zoom to 100 by default
  • New LaserGrid element, beware
  • Stone does not rotate when on top of a carry item
  • Achievements update is not called every frame but on certain triggers
  • Fixed an issue where an achievement could also be valid for next level  
  • Some maps changes
  • New interface ISettings 
  • TSettings is no longer a singleton class
  • Shadows are cast only if there is a solid block behind
  • Background effects, autofit, seamless, etc can be configured from editor
  • New class TVehicle 
  • TCardRide now inherits from TVehicle 
  • Fixed a bug while walking on top a vehicle
  • New enemy UFO 
  • New enemy Thing 
  • New enemy Horus
  • Any entity can use vehicles not just hero
  • New property GameSprite.Child, TVehicle uses it in order to know who is using the vehicle
  • New animation when hero is landing 
  • Cardride now set its own state properly
  • New status ssLanding, hero uses it
  • Fixed a bug where unlocking coin achievement could be applied to next level


  • Manual timeout is not override with value equal one  if there is no configuration
  • New property in Sprite ShadowZoomDelta
  • TSprite.HandlerTriggers() is now executed on Tick()
  • New Ticks counter 
  • Tick() is no longer attached to sprite engine but to the own sprite render 
  • New interface IData is related to ITag in order to pass info to objects
  • New interface ISpriteEngine 
  • New property TGraphicDriver.BuffersUsed
  • Removed all *2 variables for keeping values and now all is done properly when paused via Tick()
  • Tick() now also handles sleep/timeout/speed aspects
  • Beam size of Laser can now be adjusted
  • TLevels has now some new handy methods like Previous, IsCompleted, First, Last and Next

New backgrounds)