#pragma once #include #include "common/asset.h" #include "common/utils.h" #include "enemy_path.h" #include "enemy.h" #include "map.h" #include "player.h" #include #include #ifndef ENEMY_ENGINE_H #define ENEMY_ENGINE_H // Clase EnemyEngine class EnemyEngine { private: // Objetos y punteros Asset *asset; // Objeto con la ruta a todos los ficheros de recursos Map *map; // Mapa con la información de la habitación Player *player; // Puntero con el jugador SDL_Renderer *renderer; // El renderizador de la ventana std::vector enemies; // Vector con la lista de enemigos // Carga las variables desde un fichero bool load(std::string file_path); // Asigna variables a una estructura enemy_t bool setEnemy(enemy_t *enemy, SDL_Point *p1, SDL_Point *p2, std::string var, std::string value); public: // Constructor EnemyEngine(SDL_Renderer *renderer, Asset *asset, Player *player, Map *map, std::string file); // Destructor ~EnemyEngine(); // Pinta los enemigos en pantalla void render(); // Actualiza las variables del objeto void update(); // Comprueba las colisiones con los enemigos bool checkEnemyCollision(SDL_Rect &rect); }; #endif