snakeplusplus/src/main.cpp

68 lines
2.3 KiB
C++
Raw Normal View History

#include <iostream>
#include <SFML\Graphics.hpp>
#include <SFML\System.hpp>
using namespace std;
bool SnakeCollision(sf::RectangleShape object1, sf::RectangleShape object2);
int main()
{
int videoSizeHorizontal, videoSizeVertical;
2022-05-06 01:26:17 -05:00
videoSizeHorizontal = 1024;
videoSizeVertical = 725;
sf::RenderWindow window(sf::VideoMode(videoSizeHorizontal, videoSizeVertical), "SnakePlusPlus");
2022-05-06 01:26:17 -05:00
sf::Time delay = sf::milliseconds(100);
sf::RectangleShape snakeHead(sf::Vector2f(25,25));
sf::RectangleShape snakeFood(sf::Vector2f(25,25));
2022-05-06 01:26:17 -05:00
snakeHead.setFillColor(sf::Color::Green);
snakeFood.setFillColor(sf::Color::Red);
snakeFood.setPosition(25,25);
2022-05-06 01:26:17 -05:00
while (window.isOpen())
{
2022-05-06 01:26:17 -05:00
sf::Event event;
while (window.pollEvent(event))
{
if ((event.type == sf::Event::Closed) || (sf::Keyboard::isKeyPressed(sf::Keyboard::Escape)))
window.close();
}
2022-05-06 01:26:17 -05:00
sf::Vector2f snakeHeadPosition = snakeHead.getPosition();
sf::Vector2f snakeFoodPosition = snakeFood.getPosition();
2022-05-06 01:26:17 -05:00
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Left))
snakeHeadPosition.x -= 25;
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Up))
snakeHeadPosition.y -= 25;
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Down))
snakeHeadPosition.y += 25;
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Right))
snakeHeadPosition.x += 25;
snakeHead.setPosition(snakeHeadPosition.x, snakeHeadPosition.y);
if (SnakeCollision(snakeHead, snakeFood))
{
snakeFoodPosition.x += 25;
snakeFoodPosition.y += 25;
snakeFood.setPosition(snakeFoodPosition.x, snakeFoodPosition.y);
}
2022-05-06 01:26:17 -05:00
window.clear();
window.draw(snakeFood);
2022-05-06 01:26:17 -05:00
window.draw(snakeHead);
window.display();
sf::sleep(delay);
}
}
bool SnakeCollision(sf::RectangleShape object1, sf::RectangleShape object2)
{
sf::Vector2f object1Position = object1.getPosition();
sf::Vector2f object2Position = object2.getPosition();
if (object1Position.x != object2Position.x)
return 0;
if (object1Position.y != object2Position.y)
return 0;
return 1;
}