Sprite Animation Manager 0.1.0
Sprite animation manager using the citro2d library.
sprite_animation_manager.h
Go to the documentation of this file.
1
5#ifndef SPRITE_ANIMATION_MANAGER_H
6#define SPRITE_ANIMATION_MANAGER_H
7
8#include <citro2d.h>
9#include <3ds/svc.h>
10#include <3ds/types.h>
11
12#define ANIMATION_REFRESH_TIME_MIN 17 // A minimum of the animation refresh time is 17ms
13
14typedef struct sprite_velocity {
15 float dx;
16 float dy;
18
19typedef struct sprite_pivot {
20 float x;
21 float y;
23
24typedef struct sprite_position {
25 float x;
26 float y;
28
29typedef struct sprite_refresh_info {
30 uint64_t start;
31 uint64_t stop;
32 uint64_t elapsed;
33 uint64_t refresh_time;
35
36typedef struct sprite_frame_info {
40
41typedef struct object_2d_info {
42 C2D_Sprite* object_sprite;
43 C2D_SpriteSheet spritesheet;
48
49
67void initialize_object(object_2d_info_t* object, C2D_Sprite* sprites, const char* filename, const sprite_pivot_t pivot, const sprite_position_t position, const float rotation, uint64_t animation_refresh_time);
68
76
84
90#endif /* SPRITE_ANIMATION_MANAGER_H */
void deinitialize_object(object_2d_info_t *object)
Deinitialize 2D object.
Definition: sprite_animation_manager.c:44
void draw_sprite_animation(object_2d_info_t *object)
Draw sprite animation from the 2D object.
Definition: sprite_animation_manager.c:50
void initialize_object(object_2d_info_t *object, C2D_Sprite *sprites, const char *filename, const sprite_pivot_t pivot, const sprite_position_t position, const float rotation, uint64_t animation_refresh_time)
Initialize 2D object.
Definition: sprite_animation_manager.c:3
Definition: sprite_animation_manager.h:41
sprite_frame_info_t frame_info
2D object frame information
Definition: sprite_animation_manager.h:46
sprite_velocity_t velocity
2D object velocity information
Definition: sprite_animation_manager.h:44
C2D_Sprite * object_sprite
2D object sprite information
Definition: sprite_animation_manager.h:42
sprite_refresh_info_t refresh_info
2D object refresh information
Definition: sprite_animation_manager.h:45
C2D_SpriteSheet spritesheet
2D object Spritesheet information
Definition: sprite_animation_manager.h:43
Definition: sprite_animation_manager.h:36
int current_frame_index
Current sprite ID number.
Definition: sprite_animation_manager.h:37
size_t num_of_sprites
Number of sprites.
Definition: sprite_animation_manager.h:38
Definition: sprite_animation_manager.h:19
float y
Sprite y pivot point.
Definition: sprite_animation_manager.h:21
float x
Sprite x pivot point.
Definition: sprite_animation_manager.h:20
Definition: sprite_animation_manager.h:24
float y
Sprite y position in the Cartesian coordinate system.
Definition: sprite_animation_manager.h:26
float x
Sprite x position in the Cartesian coordinate system.
Definition: sprite_animation_manager.h:25
Definition: sprite_animation_manager.h:29
uint64_t start
Start time.
Definition: sprite_animation_manager.h:30
uint64_t elapsed
Elapsed time (start - stop)
Definition: sprite_animation_manager.h:32
uint64_t refresh_time
Next sprite update time [Unit: ms].
Definition: sprite_animation_manager.h:33
uint64_t stop
Lap time.
Definition: sprite_animation_manager.h:31
Definition: sprite_animation_manager.h:14
float dy
Sprite velocity in y direction.
Definition: sprite_animation_manager.h:16
float dx
Sprite velocity in x direction.
Definition: sprite_animation_manager.h:15