#pragma once #include "ifdefs.h" #include "animatedsprite.h" #include "utils.h" #ifndef ITEM_H #define ITEM_H // Clase AnimatedSprite class Item { public: // Constructor Item(); // Destructor ~Item(); // Iniciador void init(Uint8 value, float x, float y, LTexture* texture, SDL_Renderer *renderer); // Centra el objeto en la posición X void allignTo(int x); // Pinta el objeto en la pantalla void render(); // Actualiza la posición y estados del objeto void move(); // Pone a cero todos los valores del objeto void erase(); // Actualiza al objeto a su posicion, animación y controla los contadores void update(); // Actualiza el contador void updateTimeToLive(); // Comprueba si el objeto sigue vivo void checkTimeToLive(); // Obtiene del valor de la variable float getPosX(); // Obtiene del valor de la variable float getPosY(); // Obtiene del valor de la variable int getWidth(); // Obtiene del valor de la variable int getHeight(); // Obtiene del valor de la variable int getClass(); // Obtiene el valor de la variable bool isEnabled(); // Establece el valor de la variable void setEnabled(bool value); // Obtiene el circulo de colisión circle_t &getCollider(); // Temporizador con el tiempo que el objeto está presente Uint16 mTimeToLive; private: // Posición X,Y del objeto float mPosX; float mPosY; // Alto y ancho del objeto Uint8 mWidth; Uint8 mHeight; // Variables para controlar la velocidad del objeto float mVelX; float mVelY; // Aceleración float mAccelX; float mAccelY; // Sprite con los graficos del objeto AnimatedSprite *mSprite; // Especifica el tipo de objeto que es Uint8 mClass; // Especifica si está habilitado el objeto bool mEnabled; // Circulo de colisión del objeto circle_t mCollider; // Alinea el circulo de colisión con la posición del objeto void shiftColliders(); }; #endif