snakeplusplus/src/main.cpp
TriantaTV 9f90e6fb2f Added boundaries for snake movement
Snake is now limited to a hard-coded boundary. Boundary is planned to be changed to no longer be hard-coded.
2022-07-26 19:47:08 -05:00

75 lines
2.4 KiB
C++

#include <iostream>
#include <SFML\Graphics.hpp>
#include <SFML\System.hpp>
#include "Snake.h"
/*
TODO: Work on snake body
Add ability for body to extend when eating food
Turn snake body into queue
Each piece of queue has coordinates
If head touches food, just add to queue, don't pop
*/
int main()
{
int videoSizeHorizontal, videoSizeVertical;
videoSizeHorizontal = 1024;
videoSizeVertical = 725;
/*
gameGridHorizontal = (videoSizeHorizontal // 25) * 25;
gameGridVertical = (videoSizeVertical // 25) * 25;
*/
sf::RenderWindow window(sf::VideoMode(videoSizeHorizontal, videoSizeVertical), "SnakePlusPlus");
sf::Time delay = sf::milliseconds(100);
int snakeDirection = 0;
Snake Player(sf::Vector2f(25,25));
sf::RectangleShape snakeHead(sf::Vector2f(25,25));
sf::RectangleShape snakeFood(sf::Vector2f(25,25));
// snakeHead.setFillColor(sf::Color::Green);
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();
}
// sf::Vector2f snakeHeadPosition = Player.GetSnakeHeadPosition();
sf::Vector2f snakeFoodPosition = snakeFood.getPosition();
// TODO: Split Movement into separate function
// Add boundaries
// Add movement until boundaries
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();
// if (SnakeCollision(snakeHead, snakeFood))
// {
// snakeFoodPosition.x += 25;
// snakeFoodPosition.y += 25;
// snakeFood.setPosition(snakeFoodPosition.x, snakeFoodPosition.y);
window.clear();
window.draw(snakeFood);
Player.DisplaySnake(window);
window.display();
// sf::sleep(delay);
}
}