47 lines
1.2 KiB
C++
47 lines
1.2 KiB
C++
#pragma once
|
|
|
|
#include "texture.h"
|
|
#include "defines.h"
|
|
|
|
class Sprite
|
|
{
|
|
private:
|
|
Texture *texture_; // Textura con los gráficos del sprite
|
|
SDL_FRect pos_; // Posición y tamaño del sprite
|
|
SDL_FRect clip_; // Parte de la textura que se va a dibujar
|
|
int frame_; // Frame a dibujar de la textura definido en clip
|
|
int num_frames_; // Numero total de frames
|
|
int animation_speed_; // Velocidad de animación
|
|
int animation_counter_; // Contador para la animación
|
|
|
|
// Anima el sprite
|
|
void animate();
|
|
|
|
public:
|
|
// Constructor
|
|
explicit Sprite(Texture *texture);
|
|
|
|
// Destructor
|
|
~Sprite() = default;
|
|
|
|
// Establece la posición del sprite
|
|
void setPos(SDL_Point pos);
|
|
|
|
// Pinta el sprite
|
|
void render();
|
|
|
|
// Actualiza la lógica de la clase
|
|
void update();
|
|
|
|
// Establece el rectangulo de la textura que se va a pintar
|
|
void setClip(SDL_FRect clip);
|
|
|
|
// Establece el tamaño del sprite
|
|
void setSize(int w, int h);
|
|
|
|
// Modulación de color
|
|
void setColor(int r, int g, int b);
|
|
|
|
// Cambia la velocidad de la animación
|
|
void setAnimationSpeed(int value);
|
|
}; |