polimorfise d'enemics
moving platforms
This commit is contained in:
@@ -6,14 +6,16 @@
|
||||
#include <string> // Para string
|
||||
#include <vector> // Para vector
|
||||
|
||||
#include "game/defaults.hpp" // Para Defaults::Game::Room
|
||||
#include "game/entities/enemy.hpp" // Para EnemyData
|
||||
#include "game/entities/item.hpp" // Para ItemData
|
||||
#include "game/gameplay/scoreboard.hpp" // Para Scoreboard::Data
|
||||
#include "utils/defines.hpp" // Para Tile::SIZE, Map::WIDTH, Map::HEIGHT
|
||||
#include "game/defaults.hpp" // Para Defaults::Game::Room
|
||||
#include "game/entities/enemy.hpp" // Para EnemyData
|
||||
#include "game/entities/item.hpp" // Para ItemData
|
||||
#include "game/entities/moving_platform.hpp" // Para MovingPlatform::Data
|
||||
#include "game/gameplay/scoreboard.hpp" // Para Scoreboard::Data
|
||||
#include "utils/defines.hpp" // Para Tile::SIZE, Map::WIDTH, Map::HEIGHT
|
||||
class Surface;
|
||||
class EnemyManager;
|
||||
class ItemManager;
|
||||
class PlatformManager;
|
||||
class CollisionMap;
|
||||
class TileCollider;
|
||||
class TilemapRenderer;
|
||||
@@ -44,6 +46,7 @@ class Room {
|
||||
std::vector<int> collision_tile_map;
|
||||
std::vector<Enemy::Data> enemies;
|
||||
std::vector<Item::Data> items;
|
||||
std::vector<MovingPlatform::Data> platforms;
|
||||
};
|
||||
|
||||
// Constructor y destructor
|
||||
@@ -55,6 +58,7 @@ class Room {
|
||||
[[nodiscard]] auto getBGColor() const -> Uint8 { return bg_color_; }
|
||||
void renderMap();
|
||||
void renderEnemies();
|
||||
void renderPlatforms();
|
||||
void renderItems();
|
||||
#ifdef _DEBUG
|
||||
void redrawMap();
|
||||
@@ -62,6 +66,7 @@ class Room {
|
||||
void resetEnemyPositions(const std::vector<Enemy::Data>& enemy_data);
|
||||
auto getEnemyManager() -> EnemyManager* { return enemy_manager_.get(); }
|
||||
auto getItemManager() -> ItemManager* { return item_manager_.get(); }
|
||||
auto getPlatformManager() -> PlatformManager* { return platform_manager_.get(); }
|
||||
void setItemColors(Uint8 color1, Uint8 color2);
|
||||
void setTile(int index, int tile_value);
|
||||
void setCollisionTile(int index, int value);
|
||||
@@ -75,6 +80,7 @@ class Room {
|
||||
auto getRoom(Border border) -> std::string;
|
||||
auto enemyCollision(SDL_FRect& rect) -> bool;
|
||||
auto itemCollision(SDL_FRect& rect) -> bool;
|
||||
auto checkPlayerOnPlatform(const SDL_FRect& player_collider, float player_vy) -> MovingPlatform*;
|
||||
void setPaused(bool value);
|
||||
[[nodiscard]] auto getConveyorBeltDirection() const -> int { return conveyor_belt_direction_; }
|
||||
[[nodiscard]] auto getTileCollider() const -> const TileCollider&;
|
||||
@@ -89,6 +95,7 @@ class Room {
|
||||
|
||||
std::unique_ptr<EnemyManager> enemy_manager_;
|
||||
std::unique_ptr<ItemManager> item_manager_;
|
||||
std::unique_ptr<PlatformManager> platform_manager_;
|
||||
std::unique_ptr<CollisionMap> collision_map_;
|
||||
std::unique_ptr<TilemapRenderer> tilemap_renderer_;
|
||||
std::shared_ptr<Surface> surface_;
|
||||
|
||||
Reference in New Issue
Block a user