/
Game.hpp
92 lines (82 loc) · 3.24 KB
/
Game.hpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#ifndef GAME_HPP
# define GAME_HPP
#include "Input.hpp"
#include "Window.hpp"
#include "GameClock.hpp"
namespace gdl
{
////////////////////////////////////////////////////////////
/// Forward declaration of GameImpl.
////////////////////////////////////////////////////////////
class GameImpl;
////////////////////////////////////////////////////////////
/// The Window class offers you an easier way to develop a game.
/// You just need to inherite from it and override three
/// methods : initialize, update and draw.
////////////////////////////////////////////////////////////
class Game
{
public:
////////////////////////////////////////////////////////////
/// Default constructor.
////////////////////////////////////////////////////////////
Game(void);
////////////////////////////////////////////////////////////
/// Default destructor.
////////////////////////////////////////////////////////////
virtual ~Game(void);
////////////////////////////////////////////////////////////
/// Call the initialize methode, create the window.
/// While the window is open call update, draw and display
/// the window.
////////////////////////////////////////////////////////////
void run(void);
////////////////////////////////////////////////////////////
/// Get the root for the Content.
///
/// \return Path to the Root.
////////////////////////////////////////////////////////////
std::string const & getContentRoot(void) const;
////////////////////////////////////////////////////////////
/// Set the root for the Content.
///
/// \param[in] name Path to the Root.
////////////////////////////////////////////////////////////
void setContentRoot(std::string const &);
protected:
////////////////////////////////////////////////////////////
/// To override.
////////////////////////////////////////////////////////////
virtual void initialize(void) = 0;
////////////////////////////////////////////////////////////
/// To override.
////////////////////////////////////////////////////////////
virtual void update(void) = 0;
////////////////////////////////////////////////////////////
/// To override.
////////////////////////////////////////////////////////////
virtual void draw(void) = 0;
////////////////////////////////////////////////////////////
/// To override.
////////////////////////////////////////////////////////////
virtual void unload(void) = 0;
////////////////////////////////////////////////////////////
/// Game window.
////////////////////////////////////////////////////////////
Window window_;
////////////////////////////////////////////////////////////
/// Game clock.
////////////////////////////////////////////////////////////
GameClock gameClock_;
////////////////////////////////////////////////////////////
/// Input manager.
////////////////////////////////////////////////////////////
Input input_;
private:
////////////////////////////////////////////////////////////
/// Game Implementation
////////////////////////////////////////////////////////////
GameImpl& gameInternal_;
};
}
#endif /* !GAME_HPP */