-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathGame.cpp
More file actions
97 lines (68 loc) · 1.72 KB
/
Game.cpp
File metadata and controls
97 lines (68 loc) · 1.72 KB
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
93
94
95
96
97
#include "Game.hpp"
Game::Game() {
levelManager.init();
musicManager.init();
player.object.x = levelManager.playerResetPosition.x;
player.object.y = levelManager.playerResetPosition.y;
GameLoop();
}
void Game::GameLoop() {
while(!WindowShouldClose()) {
BeginDrawing();
levelManager.clearBackground();
if(startMainGame()) updateGame();
EndDrawing();
}
CloseWindow();
CloseAudioDevice();
}
void Game::updateGame() {
if(IsWindowResized()) {
levelManager.tiles.clear();
levelManager.items.clear();
levelManager.slimes.clear();
levelManager.readData();
levelManager.makeBackgroundTiles();
}
musicManager.playMusic();
levelManager.update(&player, &musicManager);
}
bool Game::startMainGame() {
time += GetFrameTime();
float yOffset = sin(time * 2.0) * 25;
Rectangle src = {
0,
playBtn.height / 2.0f,
(float) playBtn.width / 2,
(float) playBtn.height / 2
};
Rectangle object = {
(float) (GetScreenWidth() / 2) - 150,
(float) (GetScreenHeight() / 2),
300,
100
};
if(utils::mouseOver(object)) {
src.x = src.width;
if(IsMouseButtonDown(MOUSE_BUTTON_LEFT)) startGame = true;
}
if(!startGame) {
DrawTexturePro(
playBtn,
src, object,
{0, 0}, 0, WHITE
);
DrawText(
"Floating Kingdom",
(GetScreenWidth() / 2) - 400,
((GetScreenHeight() / 3) - 100) + yOffset,
100,
GOLD
);
}
return startGame;
}
Game::~Game() {
levelManager.destroy();
musicManager.destroy();
}