2022-08-15 23:51:18 -05:00
|
|
|
// GameState.cpp
|
2022-07-28 15:18:24 -05:00
|
|
|
#include <SFML\Graphics.hpp>
|
|
|
|
#include <SFML\System.hpp>
|
2022-08-02 21:17:23 -05:00
|
|
|
#include "Snake.h"
|
2022-07-28 15:18:24 -05:00
|
|
|
#include "GameState.h"
|
|
|
|
|
|
|
|
GameState::GameState()
|
|
|
|
{
|
2022-07-29 16:27:18 -05:00
|
|
|
sf::VideoMode tempVideoMode(1024, 725);
|
|
|
|
gameVideoMode = tempVideoMode;
|
|
|
|
sf::RenderWindow gameWindow(gameVideoMode, "SnakePlusPlus");
|
2022-07-28 15:18:24 -05:00
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
GameState::GameState(int newHorizontal, int newVertical)
|
|
|
|
{
|
2022-07-29 16:27:18 -05:00
|
|
|
sf::VideoMode tempVideoMode(newHorizontal, newVertical);
|
|
|
|
gameVideoMode = tempVideoMode;
|
|
|
|
sf::RenderWindow tempWindow(gameVideoMode, "SnakePlusPlus");
|
2022-07-28 15:18:24 -05:00
|
|
|
return;
|
|
|
|
}
|
2022-08-02 21:17:23 -05:00
|
|
|
|
|
|
|
void GameState::startNewGame()
|
|
|
|
{
|
|
|
|
gameWindow.create(gameVideoMode, "SnakePlusPlus");
|
2022-08-17 00:41:29 -05:00
|
|
|
sf::Time delay = sf::milliseconds(100);
|
2022-08-02 21:17:23 -05:00
|
|
|
int snakeDirection = 0;
|
2022-08-02 21:58:58 -05:00
|
|
|
Snake player(sf::Vector2f(25,25));
|
|
|
|
SnakeFood playerFood(sf::Vector2f(25,25));
|
2022-08-02 21:17:23 -05:00
|
|
|
|
|
|
|
while (gameWindow.isOpen())
|
|
|
|
{
|
|
|
|
sf::Event event;
|
|
|
|
while (gameWindow.pollEvent(event))
|
|
|
|
{
|
|
|
|
if ((event.type == sf::Event::Closed) || (sf::Keyboard::isKeyPressed(sf::Keyboard::Escape)))
|
|
|
|
gameWindow.close();
|
|
|
|
}
|
2022-08-15 23:51:18 -05:00
|
|
|
player.CheckDirection();
|
|
|
|
player.MoveSnake(playerFood, gameVideoMode);
|
2022-08-02 21:17:23 -05:00
|
|
|
gameWindow.clear();
|
2022-08-02 21:58:58 -05:00
|
|
|
player.DisplaySnake(gameWindow);
|
|
|
|
gameWindow.draw(playerFood.snakeFoodObject);
|
2022-08-02 21:17:23 -05:00
|
|
|
gameWindow.display();
|
|
|
|
sf::sleep(delay);
|
|
|
|
}
|
|
|
|
}
|