sprite¶
struct sprite¶
-
struct
sprite
¶ Sprites use images sliced into frames to play short animations. Sprites can be used for game characters, props, tiles and titles. To create a sprite, you will need to create an image containing a set of fixed-sized frames and then pass it to create_sprite():
struct sprite* wizard = NULL; wizard = create_sprite(create_image("wizard.png", screen), 32, 32);
Note that by creating both the sprite and the image, you are responsible to the clean-up once you’re done:
destroy_image(wizard->image); destroy_sprite(wizard);
To animate a sprite, you need to create animation instances, indicating the frames to play. To actually play an animation, use play_animation():
play_animation(wizard, walk);
Finally, to update the sprite animation, call animate_sprite():
void* data; data = animate_sprite(wizard, elapsed_ms);
Once a frame that has a user-data associated with it is played, you will get the data pointer back.
create_sprite¶
destroy_sprite¶
-
void
destroy_sprite
(struct sprite *sprite)¶ destroy an allocated sprite
- Parameters
sprite
-sprite created using create_sprite().
prepare_sprite¶
-
int
prepare_sprite
(struct sprite *sprite, struct image *image, int frame_width, int frame_height)¶ Build a sprite from a sprite image file containing frame tiles.
- Return
- -1 on error
- Parameters
sprite
-sprite resource to generate
image
-image containing the sprite frames.
frame_width
-width of each frame tile
frame_height
-height of each frame tile
draw_sprite¶
-
int
draw_sprite
(struct sprite *sprite, int x, int y)¶ Draw the active frame of the sprite. If no sprite animation is active, the first frame will be drawn. If an animation is active, the animation state will determine the frame to draw.
- Return
- rendered sprite frame index
- Parameters
sprite
-sprite to use
x
-x coordinates
y
-y coordinates
draw_sprite_frame¶
-
void
draw_sprite_frame
(struct sprite *sprite, int x, int y, int frame)¶ Draw the specified frame of the sprite. This function can be used to override any animation or just use a sprite for its sprite sheet.
- Parameters
sprite
-sprite to use
x
-x coordinates
y
-y coordinates
frame
-frame index to draw from the sprite sheet
animate_sprite¶
play_animation¶
-
void
play_animation
(struct sprite *sprite, struct animation *animation)¶ Play a any binded sprite animation
- Note
- If a previous animation keyframe is not through playing, the requested animation will be defered until the previous keyframe is completed.
- Parameters
sprite
-/ref sprite to use the animation for.
animation
-/ref animation to play.
stop_animation¶
-
void
stop_animation
(struct sprite *sprite)¶ Stop any playing animation Use this function to stop any currently playing or staged animation. This will clear any running animation and so any new animation activated using /ref play_animation will start immediately.
- Parameters
sprite
-/ref sprite to work on.