FlxSprite
import flixel.FlxSprite;
HAXE
FlxSprites are the core building blocks of all Flixel games. They offer a friendly API to add animation, movement and features for the needs of most games.
It is pretty common place to extend FlxSprite
for your own game's needs; for example a SpaceShip
class may extend FlxSprite
but could have additional variables for the game like shieldStrength
or shieldPower
. When you extend FlxSprite
it is important to remember to use super.update()
if you override the update
method, as you would do for any other FlxBasic
.
loadGraphic()
This method is the easiest way to use a single image for your FlxSprite. Using the OpenFL asset system defined in the project xml file you simply have to define a path to your image and the compiler will do the rest.
var player = new FlxSprite();
player.loadGraphic("assets/player.png");
add(player);
HAXE
makeGraphic()
This method is a handy way to make a simple color fill to quickly test a feature or have the basic shape.
var whiteSquare = new FlxSprite();
whiteSquare.makeGraphic(200, 200, FlxColor.WHITE);
add(whiteSquare);
HAXE
Properties
Position: x, y
whiteSquare.x = 100;
whiteSquare.y = 300;
HAXE
Size: width, height
Automatically set in loadGraphic()
or makeGraphic()
, changing this will only affect the hitbox of this sprite, use scale
to change the graphic's size.
// get
var getWidth = whiteSquare.width;
// set
whiteSquare.width = 100;
whiteSquare.height = 100;
HAXE
Scale
(FlxPoint)
Change the size of your sprite's graphic. NOTE: The hitbox is not automatically adjusted, use updateHitbox()
for that (or setGraphicSize()
).
// twice as big
whiteSquare.scale.set(2, 2);
// 50%
whiteSquare.scale.set(0.5, 0.5);
HAXE
Offset
(FlxPoint)
Controls the position of the sprite's hitbox. Likely needs to be adjusted after changing a sprite's width, height or scale.
whiteSquare.offset.set(50, 50);
HAXE
Origin
(FlxPoint)
Rotation axis. Default: center.
WARNING: If you change this, the visuals and the collisions will likely be pretty out-of-sync if you do any rotation.
// rotate from top-left corner instead of center
whiteSquare.origin.set(0, 0);
HAXE
kill()
This method is useful for when you want to hide a sprite from the stage but keep it available to reuse later. For example you may want to respawn an enemy the player has killed.
destroy()
This method is destructive to the sprite and should be used when you want to make sure that the sprite will be cleared from memory. It is commonly used inside a FlxState's overridden destroy method.
Animation
Flixel supports spritesheet animation.
player.loadGraphic("assets/player.png", true, 32, 36);
player.animation.add("walk", [0, 1, 0, 2], 5, true);
player.animation.play("walk");
HAXE