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/renderer.h"
|
||||||
#include "arc/graphics/spritesheet.h"
|
#include "arc/graphics/spritesheet.h"
|
||||||
|
#include "arc/math/point.h"
|
||||||
#include "arc/math/rectangle.h"
|
#include "arc/math/rectangle.h"
|
||||||
#include "arc/std/array.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);
|
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
|
* @brief switches ARC_Sprite's frames to next for animation
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@
|
||||||
#include "arc/graphics/sdl/sprite.h"
|
#include "arc/graphics/sdl/sprite.h"
|
||||||
#include "arc/graphics/sdl/spritesheet.h"
|
#include "arc/graphics/sdl/spritesheet.h"
|
||||||
#include "arc/graphics/sdl/renderer.h"
|
#include "arc/graphics/sdl/renderer.h"
|
||||||
|
#include "arc/math/point.h"
|
||||||
#include "arc/math/rectangle.h"
|
#include "arc/math/rectangle.h"
|
||||||
#include <stdlib.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);
|
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){
|
void ARC_Sprite_IterateFrame(ARC_Sprite *sprite){
|
||||||
++*sprite->frameIndex;
|
++*sprite->frameIndex;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue