Added snake food and food moves when touched
Movement is not yet made to be randomly positioned.
This commit is contained in:
parent
ca7f6db077
commit
8e4d53ea2a
27
src/main.cpp
27
src/main.cpp
@ -3,6 +3,8 @@
|
|||||||
#include <SFML\System.hpp>
|
#include <SFML\System.hpp>
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
|
bool SnakeCollision(sf::RectangleShape object1, sf::RectangleShape object2);
|
||||||
|
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
int videoSizeHorizontal, videoSizeVertical;
|
int videoSizeHorizontal, videoSizeVertical;
|
||||||
@ -12,7 +14,11 @@ int main()
|
|||||||
sf::Time delay = sf::milliseconds(100);
|
sf::Time delay = sf::milliseconds(100);
|
||||||
|
|
||||||
sf::RectangleShape snakeHead(sf::Vector2f(25,25));
|
sf::RectangleShape snakeHead(sf::Vector2f(25,25));
|
||||||
|
sf::RectangleShape snakeFood(sf::Vector2f(25,25));
|
||||||
snakeHead.setFillColor(sf::Color::Green);
|
snakeHead.setFillColor(sf::Color::Green);
|
||||||
|
snakeFood.setFillColor(sf::Color::Red);
|
||||||
|
|
||||||
|
snakeFood.setPosition(25,25);
|
||||||
|
|
||||||
while (window.isOpen())
|
while (window.isOpen())
|
||||||
{
|
{
|
||||||
@ -23,6 +29,7 @@ int main()
|
|||||||
window.close();
|
window.close();
|
||||||
}
|
}
|
||||||
sf::Vector2f snakeHeadPosition = snakeHead.getPosition();
|
sf::Vector2f snakeHeadPosition = snakeHead.getPosition();
|
||||||
|
sf::Vector2f snakeFoodPosition = snakeFood.getPosition();
|
||||||
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Left))
|
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Left))
|
||||||
snakeHeadPosition.x -= 25;
|
snakeHeadPosition.x -= 25;
|
||||||
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Up))
|
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Up))
|
||||||
@ -32,9 +39,29 @@ int main()
|
|||||||
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Right))
|
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Right))
|
||||||
snakeHeadPosition.x += 25;
|
snakeHeadPosition.x += 25;
|
||||||
snakeHead.setPosition(snakeHeadPosition.x, snakeHeadPosition.y);
|
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.clear();
|
||||||
|
window.draw(snakeFood);
|
||||||
window.draw(snakeHead);
|
window.draw(snakeHead);
|
||||||
window.display();
|
window.display();
|
||||||
sf::sleep(delay);
|
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;
|
||||||
|
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user