epr24pr42-ojanssen2/Game.h

55 lines
1.3 KiB
C
Raw Normal View History

2025-01-19 18:23:50 +01:00
#include "Maze.h"
2025-01-19 18:20:22 +01:00
#include "Player.h"
#include "GameState.h"
#include "Entity.h"
2025-01-19 17:59:26 +01:00
#ifndef GAME_H
#define GAME_H
namespace game
{
/// Eine Instanz des Spiels
class Game
{
private:
/// Das Labyrinth
Maze maze;
/// Der Spieler
Player player;
/// Die Gegner des Spieles
vector<Entity> enemies;
/// Der Status des Spiels
GameState state;
///
bool infomode_enabled;
public:
explicit Game(Maze& maze);
/// Bearbeite die Eingabe des Spielers
/// @param input Die Eingabe des Nutzers
/// @return Der Bewegungsvektor, um den sich den Spieler bewegen möchte
/// @throws UnkownAction Wenn die Eingabe des Spielers unbekannt ist
void handle_user_input(const char& input);
/// Kontrolliere, ob das Spiel beendet werden sollte
bool should_end_game() const;
/// Starte das Spiel
void run_game();
/// Kriege den aktuellen Status des Spiels
/// @returns Den aktuellen Status
GameState get_state() const;
/// Krontroliere ob ein Geist sich an einer Position befindet
/// @param position Die Position
/// @returns Ob sich dort ein Geist aufhält
bool is_enemy_at_pos(const Vector2d& position) const ;
};
} // game
#endif //GAME_H