Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #ifndef GAME_H
- #define GAME_H
- #include "SDL.h"
- #include "SDL_ttf.h"
- #include "SDL_image.h"
- #include "Board.h"
- #include "Scoreboard.h"
- #include <iostream>
- #include <stdio.h>
- class Game {
- bool running;
- int boardOffset = 20;
- SDL_Window* window;
- SDL_Renderer* renderer;
- Board* board;
- Scoreboard* scoreboard;
- public:
- Game();
- ~Game();
- void handleEvents();
- void update();
- void render();
- void mousePress(SDL_MouseButtonEvent& b);
- bool isRunning();
- void clean();
- };
- Game::Game() : running(true) {
- window = SDL_CreateWindow("Game", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 640, 412, SDL_WINDOW_SHOWN);
- renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED);
- TTF_Init();
- SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255);
- board = new Board(4, 4 , boardOffset, renderer);
- board->init();
- scoreboard = new Scoreboard(renderer);
- scoreboard->renderScoreboard();
- }
- Game::~Game() {
- delete board;
- delete scoreboard;
- }
- void Game::update() {
- if (board->getPieceCounter() < 2) {
- }
- else {
- bool result = board->decision();
- if (result == true && scoreboard->getPlayerOne() == true) {
- scoreboard->updateScoreOne();
- }
- else if (result == true && scoreboard->getPlayerOne() == false) {
- scoreboard->updateScoreTwo();
- }
- if (scoreboard->getPlayerOne() == true) {
- scoreboard->setPlayerOne(false);
- }
- else {
- scoreboard->setPlayerOne(true);
- }
- }
- if (board->isOver()) {
- running = false;
- }
- render();
- }
- void Game::handleEvents() {
- SDL_Event e;
- while (SDL_PollEvent(&e)) {
- switch (e.type) {
- case SDL_QUIT:
- running = false;
- break;
- case SDL_MOUSEBUTTONDOWN:
- mousePress(e.button);
- break;
- }
- }
- }
- void Game::mousePress(SDL_MouseButtonEvent& event) {
- int mouseX = event.x;
- int mouseY = event.y;
- if (event.button == SDL_BUTTON_LEFT) {
- board->click(mouseX - boardOffset, mouseY - boardOffset);
- }
- render();
- }
- void Game::render() {
- SDL_RenderClear(renderer);
- if (running) {
- board->renderBoard();
- scoreboard->renderScoreboard();
- }
- else {
- scoreboard->renderGameOver();
- }
- SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255);
- SDL_RenderPresent(renderer);
- }
- bool Game::isRunning() {
- return running;
- }
- void Game::clean() {
- SDL_Delay(5000);
- SDL_DestroyWindow(window);
- SDL_DestroyRenderer(renderer);
- SDL_Quit();
- }
- #endif // GAME_H
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement