Version: beta
FUNCTION | |
---|---|
sprite.set_hflip() | set horizontal flipping on a sprite's animations |
sprite.set_vflip() | set vertical flipping on a sprite's animations |
sprite.play_flipbook() | Play an animation on a sprite component |
MESSAGE | |
---|---|
play_animation | play a sprite animation |
animation_done | reports that an animation has completed |
PROPERTIES | |
---|---|
size | vector3 sprite size |
scale | vector3 sprite scale |
image | hash sprite image |
material | hash sprite material |
cursor | number sprite cursor |
playback_rate | number sprite playback_rate |
sprite.set_hflip(url,flip)
PARAMETERS
url |
the sprite that should flip its animations |
flip |
true if the sprite should flip its animations, false if not |
EXAMPLES
How to flip a sprite so it faces the horizontal movement:function update(self, dt) -- calculate self.velocity somehow sprite.set_hflip("#sprite", self.velocity.x < 0) end
sprite.set_vflip(url,flip)
PARAMETERS
url |
the sprite that should flip its animations |
flip |
true if the sprite should flip its animations, false if not |
EXAMPLES
How to flip a sprite in a game which negates gravity as a game mechanic:function update(self, dt) -- calculate self.up_side_down somehow, then: sprite.set_vflip("#sprite", self.up_side_down) end
sprite.play_flipbook(url,id,[complete_function],[play_properties])
PARAMETERS
url |
the sprite that should play the animation |
id |
hash name hash of the animation to play |
[complete_function] |
function to call when the animation has completed.
|
[play_properties] |
optional table with properties:
|
EXAMPLES
The following examples assumes that the model has id "sprite". How to play the "jump" animation followed by the "run" animation:local function anim_done(self, message_id, message, sender) if message_id == hash("animation_done") then if message.id == hash("jump") then -- jump animation done, chain with "run" sprite.play_flipbook(url, "run") end end end
function init(self) local url = msg.url("#sprite") sprite.play_flipbook(url, "jump", anim_done) end
play a sprite animation
Post this message to a sprite component to make it play an animation from its tile set.
id |
the id of the animation to play |
EXAMPLES
In the example, it is assumed that the instance of the script has a sprite-component with id "sprite". The sprite itself is assumed to be bound to a tile set with animations "walk" and "jump".msg.post("#sprite", "play_animation", {id = hash("jump")})
reports that an animation has completed
This message is sent to the sender of a play_animation
message when the
animation has completed.
Note that this message is sent only for animations that play with the following
playback modes:
current_tile |
the current tile of the sprite |
id |
id of the animation that was completed |
EXAMPLES
How to sequence two animations together.function init(self) -- play jump animation at init msg.post("#sprite", "play_animation", {id = hash("jump")}) end function on_message(self, message_id, message, sender) -- check for animation done response if message_id == hash("animation_done") then -- start the walk animation msg.post("#sprite", "play_animation", { id = hash("walk") }) end end
READ ONLY Returns the size of the sprite, not allowing for any additional scaling that may be applied. The type of the property is vector3.
vector3 sprite size
EXAMPLES
How to query a sprite's size, either as a vector or selecting a specific dimension:function init(self) -- get size from component "sprite" local size = go.get("#sprite", "size") local sx = go.get("#sprite", "size.x") -- do something useful assert(size.x == sx) end
The non-uniform scale of the sprite. The type of the property is vector3.
vector3 sprite scale
EXAMPLES
How to scale a sprite independently along the X and Y axis:function init(self) -- Double the y-axis scaling on component "sprite" local yscale = go.get("#sprite", "scale.y") go.set("#sprite", "scale.y", yscale * 2) end
The image used when rendering the sprite. The type of the property is hash.
hash sprite image
EXAMPLES
How to set image using a script property (see resource.atlas)go.property("my_image", resource.atlas("/atlas.atlas")) function init(self) go.set("#sprite", "image", self.my_image) end
The material used when rendering the sprite. The type of the property is hash.
hash sprite material
EXAMPLES
How to set material using a script property (see resource.material)go.property("my_material", resource.material("/material.material")) function init(self) go.set("#sprite", "material", self.my_material) end
The normalized animation cursor. The type of the property is number.
number sprite cursor
EXAMPLES
How to get the normalized cursor value:function init(self) -- Get the cursor value on component "sprite" cursor = go.get("#sprite", "cursor") end
function init(self) -- Get the current value on component "sprite" go.set("#sprite", "cursor", 0.0) -- Animate the cursor value go.animate("#sprite", "cursor", go.PLAYBACK_LOOP_FORWARD, 1.0, go.EASING_LINEAR, 2) end
The animation playback rate. A multiplier to the animation playback rate. The type of the property is number. The playback_rate is a non-negative number, a negative value will be clamped to 0.
number sprite playback_rate
EXAMPLES
How to set the playback_rate on component "sprite" to play at double the current speed:function init(self) -- Get the current value on component "sprite" playback_rate = go.get("#sprite", "playback_rate") -- Set the playback_rate to double the previous value. go.set("#sprite", "playback_rate", playback_rate * 2) end