#pragma once #include #include "utils.h" #include "asset.h" #include "animatedsprite.h" #include #ifndef ENEMY_H #define ENEMY_H // Estructura para pasar los datos de un enemigo struct enemy_t { SDL_Renderer *renderer; // El renderizador de la ventana Asset *asset; // Objeto con la ruta a todos los ficheros de recursos std::string tileset; // Fichero con los graficos del enemigo std::string animation; // Fichero con las animaciones del enemigo int w; // Anchura del enemigo int h; // Altura del enemigo float x; // Posición inicial en el eje X float y; // Posición inicial en el eje Y float vx; // Velocidad en el eje X float vy; // Velocidad en el eje Y }; // Clase Enemy class Enemy { protected: SDL_Renderer *renderer; // El renderizador de la ventana Asset *asset; // Objeto con la ruta a todos los ficheros de recursos LTexture *texture; // Textura con los graficos del enemigo AnimatedSprite *sprite; // Sprite del enemigo SDL_Rect collider; // Caja de colisión public: // Constructor Enemy(); Enemy(enemy_t enemy); // Destructor virtual ~Enemy(); // Pinta el enemigo en pantalla void render(); // Actualiza las variables del objeto virtual void update(); // Devuelve el rectangulo que contiene al enemigo SDL_Rect getRect(); // Obtiene el rectangulo de colision del enemigo SDL_Rect &getCollider(); }; #endif