breakout/include/Game.h

80 lines
1.0 KiB
C++

#pragma once
#include <vector>
#include <Util.h>
#include <SFML/Graphics.hpp>
#include <imgui-SFML.h>
#include <imgui.h>
#include <Random.h>
struct Ball
{
Ball(sf::Vector2f, sf::Vector2f);
sf::Vector2f pos;
sf::Vector2f previousPos{};
sf::Vector2f velocity;
Color color{sf::Color::Red};
bool alive{true};
};
struct Brick
{
Brick(sf::Vector2f);
sf::Vector2f pos;
Color color{sf::Color::White};
bool alive{true};
};
struct Player
{
Player();
sf::Vector2f pos;
sf::Vector2f previousPos{};
Color color{sf::Color::White};
float score{};
int lives{3};
bool left{false};
bool right{false};
};
class Game
{
public:
Game();
void run();
private:
void imgui();
void render();
void input();
void collision();
void movement();
void updateEntities();
void checkEndGame();
private:
sf::Clock clock;
sf::RenderWindow window;
Player player;
std::vector<Brick> bricks;
std::vector<Brick> specialBricks;
std::vector<Ball> balls;
std::vector<sf::Vector2f> ballsToAdd;
sf::CircleShape tempCircle;
sf::RectangleShape tempRect;
};