-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMicro.h
More file actions
38 lines (32 loc) · 1.12 KB
/
Copy pathMicro.h
File metadata and controls
38 lines (32 loc) · 1.12 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
#pragma once
#include <cstdint>
#include <memory>
class GameCanvas;
class GamePhysics;
class LevelLoader;
/**
* Micro
*
* Главный класс приложения.
* Управляет жизненным циклом (Init, Run, Destroy) и основным игровым циклом.
*/
class Micro {
private:
void destroyApp(bool saveState); // Завершение работы
public:
std::unique_ptr<GameCanvas> gameCanvas;
std::unique_ptr<LevelLoader> levelLoader;
std::unique_ptr<GamePhysics> gamePhysics;
bool isRunning = false; // Флаг работы (паузы?) - странное название в оригинале
int numPhysicsLoops = 4; // Количество шагов физики за кадр (sub-stepping)
int64_t gameTimeMs = 0;
bool isInited = false;
bool shouldStop = false;
static bool isReady; // Глобальный флаг готовности/работы
Micro();
~Micro();
void startApp(int argc, char** argv);
void init();
void restart(bool fullReset);
void run(); // Главный цикл
};