rotating sprite
This commit is contained in:
parent
8d5190e405
commit
47070363ff
2 changed files with 17 additions and 0 deletions
|
|
@ -7,6 +7,7 @@ extern "C" {
|
|||
|
||||
#include "arc/graphics/renderer.h"
|
||||
#include "arc/graphics/spritesheet.h"
|
||||
#include "arc/math/point.h"
|
||||
#include "arc/math/rectangle.h"
|
||||
#include "arc/std/array.h"
|
||||
|
||||
|
|
@ -50,6 +51,17 @@ void ARC_Sprite_Copy(ARC_Sprite **newSprite, ARC_Sprite *oldSprite);
|
|||
*/
|
||||
void ARC_Sprite_Render(ARC_Sprite *sprite, ARC_Renderer *renderer, ARC_Rect *renderBounds);
|
||||
|
||||
/**
|
||||
* @brief renders ARC_Sprite type with rotation
|
||||
*
|
||||
* @param sprite ARC_Sprite that will be rendered
|
||||
* @param renderer ARC_Renderer that is handling rendering
|
||||
* @param renderBounds area of renderer that ARC_Sprite will be rendered to
|
||||
* @param angle angle to rotate ARC_Sprite
|
||||
* @param center point to rotate ARC_Sprite around
|
||||
*/
|
||||
void ARC_Sprite_RenderRotated(ARC_Sprite *sprite, ARC_Renderer *renderer, ARC_Rect *renderBounds, ARC_Point *center, double angle);
|
||||
|
||||
/**
|
||||
* @brief switches ARC_Sprite's frames to next for animation
|
||||
*
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
#include "arc/graphics/sdl/sprite.h"
|
||||
#include "arc/graphics/sdl/spritesheet.h"
|
||||
#include "arc/graphics/sdl/renderer.h"
|
||||
#include "arc/math/point.h"
|
||||
#include "arc/math/rectangle.h"
|
||||
#include <stdlib.h>
|
||||
|
||||
|
|
@ -31,6 +32,10 @@ void ARC_Sprite_Render(ARC_Sprite *sprite, ARC_Renderer *renderer, ARC_Rect *ren
|
|||
SDL_RenderCopy(renderer->renderer, sprite->spritesheet->texture, (SDL_Rect *)sprite->frames->data + *sprite->frameIndex, (SDL_Rect *)renderBounds);
|
||||
}
|
||||
|
||||
void ARC_Sprite_RenderRotated(ARC_Sprite *sprite, ARC_Renderer *renderer, ARC_Rect *renderBounds, ARC_Point *center, double angle){
|
||||
SDL_RenderCopyEx(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_IterateFrame(ARC_Sprite *sprite){
|
||||
++*sprite->frameIndex;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue