#pragma once #include "ifdefs.h" #include "animatedsprite.h" #include "utils.h" #ifndef ITEM_H #define ITEM_H // Clase AnimatedSprite class Item { private: float mPosX; // Posición X del objeto float mPosY; // Posición Y del objeto Uint8 mWidth; // Ancho del objeto Uint8 mHeight; // Alto del objeto float mVelX; // Velocidad en el eje X float mVelY; // Velocidad en el eje Y float mAccelX; // Aceleración en el eje X float mAccelY; // Aceleración en el eje Y int mStatus; // Contiene mensajes de estado AnimatedSprite *mSprite; // Sprite con los graficos del objeto Uint8 mClass; // Especifica el tipo de objeto que es bool mEnabled; // Especifica si el objeto está habilitado circle_t mCollider; // Circulo de colisión del objeto // Alinea el circulo de colisión con la posición del objeto void shiftColliders(); 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 int 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; }; #endif