=====The CitrusSprite===== This is the primary class for creating graphical game objects. You should override this class to add logic to your game object such as a Spaceship, Hero. This is the equivalent of the Flash Sprite. It has common properties that are required for properly displaying and positioning objects. If you wish to use physics engine, take a look on the [[citrus:platformer_kit|platformer kit]]. ====A simple and powerful class==== The CitrusSprite is a game object. It doesn't matter if you use Starling or the Flash display list, the CitrusSprite is a logical object which extend [[citrus:citrusobject|CitrusObject class]] and implement the [[citrus:ispriteview|ISpriteView interface]]. To create a scrolling background: var bg:CitrusSprite = new CitrusSprite("bg", {parallax:0.4, view:"background.png"}); add(bg); The CitrusSprite via its update function (moving the object depending its velocity) uses an [[citrus:frim|independent frame rate]] meaning the object will move at the same speed if the FPS targeted is 30 or 60. You can quickly create your own Hero: package { import citrus.objects.CitrusSprite; public class Hero extends CitrusSprite { public var accelerationX:Number = 200; public var accelerationY:Number = 100; public var inputChannel:uint = 0; public function Hero(name:String, params:Object = null) { super(name, params); } override public function update(timeDelta:Number):void { super.update(timeDelta); if (_ce.input.isDoing("right", inputChannel)) _velocity.x = accelerationX; if (_ce.input.isDoing("left", inputChannel)) _velocity.x = -accelerationX; if (_ce.input.hasDone("left", inputChannel) || _ce.input.hasDone("right", inputChannel)) _velocity.x = 0; if (_ce.input.isDoing("up", inputChannel)) _velocity.y = -accelerationY; if (_ce.input.isDoing("down", inputChannel)) _velocity.y = accelerationY; if (_ce.input.hasDone("up", inputChannel) || _ce.input.hasDone("down", inputChannel)) _velocity.y = 0; } } }