summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorRay <[email protected]>2018-08-14 09:47:15 +0200
committerGitHub <[email protected]>2018-08-14 09:47:15 +0200
commit477928dd0fc6c1a8e4abff9becfb584759297b1a (patch)
tree7bbc62e7e15d3fe5b1ded915f95e078974b9963d
parent34493ed2313f3d249ee914ba77423a4882b2cd38 (diff)
parentab7acd6e3435b3443c8346ab495f05699a0e9750 (diff)
downloadraylib-477928dd0fc6c1a8e4abff9becfb584759297b1a.tar.gz
raylib-477928dd0fc6c1a8e4abff9becfb584759297b1a.zip
Merge pull request #623 from Joefish/snake-fix
Games: Fixes bugs in Snake
-rw-r--r--games/snake.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/games/snake.c b/games/snake.c
index 40d66da8..23d1bd1d 100644
--- a/games/snake.c
+++ b/games/snake.c
@@ -203,7 +203,7 @@ void UpdateGame(void)
if ((snake[0].position.x == snake[i].position.x) && (snake[0].position.y == snake[i].position.y)) gameOver = true;
}
- // TODO: review logic: fruit.position calculation
+ // fruit.position calculation
if (!fruit.active)
{
fruit.active = true;
@@ -211,17 +211,17 @@ void UpdateGame(void)
for (int i = 0; i < counterTail; i++)
{
- while ((fruit.position.x == snake[i].position.x) && (fruit.position.y == snake[i].position.y))
- {
- fruit.position = (Vector2){ GetRandomValue(0, (screenWidth/SQUARE_SIZE) - 1)*SQUARE_SIZE, GetRandomValue(0, (screenHeight/SQUARE_SIZE) - 1)*SQUARE_SIZE };
- i = 0;
- }
+ while ((fruit.position.x == snake[i].position.x) && (fruit.position.y == snake[i].position.y))
+ {
+ fruit.position = (Vector2){ GetRandomValue(0, (screenWidth/SQUARE_SIZE) - 1)*SQUARE_SIZE + offset.x/2, GetRandomValue(0, (screenHeight/SQUARE_SIZE) - 1)*SQUARE_SIZE + offset.y/2 };
+ i = 0;
+ }
}
}
// collision
- if (CheckCollisionRecs((Rectangle){(int)snake[0].position.x, (int)snake[0].position.y, (int)snake[0].size.x, (int)snake[0].size.y},
- (Rectangle){(int)fruit.position.x, (int)fruit.position.y, (int)fruit.size.x, (int)fruit.size.y}))
+ if ((snake[0].position.x < (fruit.position.x + fruit.size.x) && (snake[0].position.x + snake[0].size.x) > fruit.position.x) &&
+ (snake[0].position.y < (fruit.position.y + fruit.size.y) && (snake[0].position.y + snake[0].size.y) > fruit.position.y))
{
snake[counterTail].position = snakePosition[counterTail - 1];
counterTail += 1;