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
commit f526a7500f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 6 additions and 5 deletions

1
.gitignore vendored
View File

@ -31,3 +31,4 @@
*.out
*.app
*.json
*.ps1

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);