From 8e4d53ea2ac71f090771497bdefc77e401565c15 Mon Sep 17 00:00:00 2001 From: TriantaTV <56975502+TriantaTV@users.noreply.github.com> Date: Fri, 10 Jun 2022 14:40:12 -0500 Subject: [PATCH] Added snake food and food moves when touched Movement is not yet made to be randomly positioned. --- src/main.cpp | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/main.cpp b/src/main.cpp index 377018f..f7e00db 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -3,6 +3,8 @@ #include using namespace std; +bool SnakeCollision(sf::RectangleShape object1, sf::RectangleShape object2); + int main() { int videoSizeHorizontal, videoSizeVertical; @@ -12,7 +14,11 @@ int main() sf::Time delay = sf::milliseconds(100); 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()) { @@ -23,6 +29,7 @@ int main() window.close(); } sf::Vector2f snakeHeadPosition = snakeHead.getPosition(); + sf::Vector2f snakeFoodPosition = snakeFood.getPosition(); if (sf::Keyboard::isKeyPressed(sf::Keyboard::Left)) snakeHeadPosition.x -= 25; if (sf::Keyboard::isKeyPressed(sf::Keyboard::Up)) @@ -32,9 +39,29 @@ int main() 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); + } window.clear(); + window.draw(snakeFood); 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; + +}