Merge pull request #9 from TriantaTV/Development

Fixed stacking at boundaries
This commit is contained in:
TriantaTV
2022-08-10 20:13:22 -05:00
committed by GitHub
2 changed files with 6 additions and 5 deletions
+1
View File
@@ -31,3 +31,4 @@
*.out
*.app
*.json
*.ps1
+5 -5
View File
@@ -19,7 +19,7 @@ bool SnakeCollision(sf::RectangleShape object1, sf::RectangleShape object2)
}
// Move snake head piece
// Check keyboard for new direction of snake
void Snake::CheckDirection()
{
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Left))
@@ -70,13 +70,13 @@ void Snake::MoveSnake(sf::RectangleShape& snakeFood)
CheckDirection();
sf::Vector2f newHeadPosition;
newHeadPosition = GetSnakeHeadPosition();
if (!CheckBoundaries())
newHeadPosition = CalculateNewPosition(snakeDirection, newHeadPosition);
if (CheckBoundaries())
return;
newHeadPosition = CalculateNewPosition(snakeDirection, newHeadPosition);
sf::RectangleShape newBodyPart(sf::Vector2f(25,25));
newBodyPart.setPosition(newHeadPosition);
if (IsSelfCollision(newBodyPart))
if (IsSelfCollision(newBodyPart)) // Do nothing if self collision
{
// Do nothing if self collision
return;
}
newBodyPart.setFillColor(sf::Color::Green);