pacman/lib/Game.hpp

37 lines
690 B
C++
Raw Normal View History

2021-06-10 12:42:51 +00:00
#pragma once
2020-11-27 13:10:09 +00:00
#include "Board.hpp"
#include "Canvas.hpp"
2021-06-24 11:32:52 +00:00
#include "Ghost.hpp"
#include "PacMan.hpp"
#include "Pellets.hpp"
2021-06-24 11:32:52 +00:00
#include "Score.hpp"
#include "SuperPellets.hpp"
class InputState;
2020-11-27 13:10:09 +00:00
class Game {
public:
Game();
void run();
private:
2021-06-24 11:32:52 +00:00
friend class Canvas;
Canvas canvas;
2020-11-27 13:10:09 +00:00
Board board;
PacMan pacMan;
Pellets pellets;
SuperPellets superPellets;
std::tuple<Blinky, Speedy, Inky, Clyde> ghosts;
2021-06-24 08:32:54 +00:00
Score score;
2021-07-01 08:02:53 +00:00
std::chrono::milliseconds timeSinceDeath{};
2020-11-27 13:10:09 +00:00
2021-06-24 11:32:52 +00:00
void step(std::chrono::milliseconds delta, InputState inputState);
2021-06-16 11:59:16 +00:00
void eatPellets();
void processEvents(InputState & inputState);
2021-06-28 10:42:21 +00:00
void checkCollision(Ghost & g);
2020-11-27 16:16:42 +00:00
[[nodiscard]] static auto now();
2020-11-27 13:10:09 +00:00
};