diff --git a/examples/models/models_first_person_maze.c b/examples/models/models_first_person_maze.c index eb0db6024..4c77d6121 100644 --- a/examples/models/models_first_person_maze.c +++ b/examples/models/models_first_person_maze.c @@ -83,10 +83,14 @@ int main(void) // Check map collisions using image data and player position against surrounding cells only for (int y = playerCellY - 1; y <= playerCellY + 1; y++) { - if (y < 0 || y >= cubicmap.height) continue; + // Avoid map accessing out of bounds + if ((y < 0) || (y >= cubicmap.height)) continue; + for (int x = playerCellX - 1; x <= playerCellX + 1; x++) { - if (x < 0 || x >= cubicmap.width) continue; + // Avoid map accessing out of bounds + if ((x < 0) || (x >= cubicmap.width)) continue; + if ((mapPixels[y*cubicmap.width + x].r == 255) && // Collision: white pixel, only check R channel (CheckCollisionCircleRec(playerPos, playerRadius, (Rectangle){ mapPosition.x - 0.5f + x*1.0f, mapPosition.z - 0.5f + y*1.0f, 1.0f, 1.0f })))