Game window now runs under GameState
Game window now runs under GameState and removed game from being hosted in main()
This commit is contained in:
parent
f64577d2cd
commit
eae6b4c70d
@ -1,6 +1,7 @@
|
||||
#include <iostream>
|
||||
#include <SFML\Graphics.hpp>
|
||||
#include <SFML\System.hpp>
|
||||
#include "Snake.h"
|
||||
#include "GameState.h"
|
||||
|
||||
GameState::GameState()
|
||||
@ -18,3 +19,39 @@ GameState::GameState(int newHorizontal, int newVertical)
|
||||
sf::RenderWindow tempWindow(gameVideoMode, "SnakePlusPlus");
|
||||
return;
|
||||
}
|
||||
|
||||
void GameState::startNewGame()
|
||||
{
|
||||
gameWindow.create(gameVideoMode, "SnakePlusPlus");
|
||||
sf::Time delay = sf::milliseconds(25);
|
||||
int snakeDirection = 0;
|
||||
Snake Player(sf::Vector2f(25,25));
|
||||
sf::RectangleShape snakeHead(sf::Vector2f(25,25));
|
||||
sf::RectangleShape snakeFood(sf::Vector2f(25,25));
|
||||
snakeFood.setFillColor(sf::Color::Red);
|
||||
snakeFood.setPosition(25,25);
|
||||
|
||||
while (gameWindow.isOpen())
|
||||
{
|
||||
sf::Event event;
|
||||
while (gameWindow.pollEvent(event))
|
||||
{
|
||||
if ((event.type == sf::Event::Closed) || (sf::Keyboard::isKeyPressed(sf::Keyboard::Escape)))
|
||||
gameWindow.close();
|
||||
}
|
||||
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Left))
|
||||
snakeDirection = 1;
|
||||
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Up))
|
||||
snakeDirection = 2;
|
||||
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Down))
|
||||
snakeDirection = 3;
|
||||
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Right))
|
||||
snakeDirection = 4;
|
||||
Player.MoveSnake(snakeFood);
|
||||
gameWindow.clear();
|
||||
gameWindow.draw(snakeFood);
|
||||
Player.DisplaySnake(gameWindow);
|
||||
gameWindow.display();
|
||||
sf::sleep(delay);
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,8 @@
|
||||
// GameState.h
|
||||
#ifndef GAMESTATE_H
|
||||
#define GAMESTATE_H
|
||||
#include <SFML\Graphics.hpp>
|
||||
#include <SFML\System.hpp>
|
||||
|
||||
class GameState
|
||||
{
|
||||
@ -8,12 +10,13 @@ private:
|
||||
public:
|
||||
sf::VideoMode gameVideoMode;
|
||||
sf::RenderWindow gameWindow;
|
||||
GameState();
|
||||
GameState(int newHorizontal, int newVertical);
|
||||
void startNewGame();
|
||||
/*
|
||||
gameGridHorizontal = (videoSizeHorizontal // 25) * 25;
|
||||
gameGridVertical = (videoSizeVertical // 25) * 25;
|
||||
*/
|
||||
GameState();
|
||||
GameState(int newHorizontal, int newVertical);
|
||||
// sf::Vector2f GetGameBoundaries();
|
||||
};
|
||||
|
||||
|
39
src/main.cpp
39
src/main.cpp
@ -1,44 +1,7 @@
|
||||
#include <iostream>
|
||||
#include <stdlib.h>
|
||||
#include <SFML\Graphics.hpp>
|
||||
#include <SFML\System.hpp>
|
||||
#include "GameState.h"
|
||||
#include "Snake.h"
|
||||
|
||||
int main()
|
||||
{
|
||||
GameState newGame;
|
||||
newGame.gameWindow.create(newGame.gameVideoMode, "SnakePlusPlus");
|
||||
sf::RenderWindow *window = &newGame.gameWindow;
|
||||
sf::Time delay = sf::milliseconds(25);
|
||||
int snakeDirection = 0;
|
||||
Snake Player(sf::Vector2f(25,25));
|
||||
sf::RectangleShape snakeHead(sf::Vector2f(25,25));
|
||||
sf::RectangleShape snakeFood(sf::Vector2f(25,25));
|
||||
snakeFood.setFillColor(sf::Color::Red);
|
||||
snakeFood.setPosition(25,25);
|
||||
|
||||
while (window->isOpen())
|
||||
{
|
||||
sf::Event event;
|
||||
while (window->pollEvent(event))
|
||||
{
|
||||
if ((event.type == sf::Event::Closed) || (sf::Keyboard::isKeyPressed(sf::Keyboard::Escape)))
|
||||
window->close();
|
||||
}
|
||||
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Left))
|
||||
snakeDirection = 1;
|
||||
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Up))
|
||||
snakeDirection = 2;
|
||||
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Down))
|
||||
snakeDirection = 3;
|
||||
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Right))
|
||||
snakeDirection = 4;
|
||||
Player.MoveSnake(snakeFood);
|
||||
window->clear();
|
||||
window->draw(snakeFood);
|
||||
Player.DisplaySnake(*window);
|
||||
window->display();
|
||||
sf::sleep(delay);
|
||||
}
|
||||
newGame.startNewGame();
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user