added frame index selection
This commit is contained in:
parent
52b0038d42
commit
27b8ca961a
2 changed files with 18 additions and 0 deletions
|
|
@ -5,6 +5,7 @@
|
|||
#include "arc/graphics/sdl/renderer.h"
|
||||
#include "arc/math/point.h"
|
||||
#include "arc/math/rectangle.h"
|
||||
#include "arc/std/errno.h"
|
||||
#include <stdlib.h>
|
||||
|
||||
void ARC_Sprite_Create(ARC_Sprite **sprite, ARC_Spritesheet *spritesheet, ARC_Array *frames){
|
||||
|
|
@ -35,6 +36,15 @@ void ARC_Sprite_RenderRotated(ARC_Sprite *sprite, ARC_Renderer *renderer, ARC_Re
|
|||
SDL_RenderCopyEx((SDL_Renderer *)renderer, sprite->spritesheet->texture, (SDL_Rect *)sprite->frames->data + *sprite->frameIndex, (SDL_Rect *)renderBounds, angle, (SDL_Point *)center, SDL_FLIP_NONE);
|
||||
}
|
||||
|
||||
void ARC_Sprite_SetFrameIndex(ARC_Sprite *sprite, uint32_t index){
|
||||
if(sprite->frames->size <= index){
|
||||
arc_errno = ARC_ERRNO_DATA;
|
||||
ARC_DEBUG_LOG(arc_errno, "in ARC_Sprite_SetFrameIndex(sprite, %d); index out of bounds", index);
|
||||
return;
|
||||
}
|
||||
*sprite->frameIndex = index;
|
||||
}
|
||||
|
||||
void ARC_Sprite_IterateFrame(ARC_Sprite *sprite){
|
||||
++*sprite->frameIndex;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue