Fix Lua game float-to-int conversion errors for renderer.circle()

All games had the same issue: renderer.circle() requires integer arguments,
but float calculations produced non-integer coordinates.

Fixed in all games using math.floor(x + 0.5) for proper rounding:
- pong.lua: Ball position
- air_hockey.lua: Puck position
- asteroids.lua: Asteroid positions
- ball.lua: Ball and trail positions, velocity line
- breakout.lua: Ball position
- flappy_bird.lua: Bird Y position
- counter.lua: Last touch marker position
- snake.lua: Food position (center calculation)
- tic_tac_toe.lua: O circle center position

Also fixed floating-point coordinate calculations in ball and line
drawing to ensure all coordinates are integers.
This commit is contained in:
Adolfo Reyna
2026-02-12 20:51:26 -05:00
parent b5e69abc83
commit b22170b62c
9 changed files with 22 additions and 22 deletions

View File

@@ -127,9 +127,9 @@ function draw()
renderer.rect(seg.x * CELL_SIZE, seg.y * CELL_SIZE, CELL_SIZE, CELL_SIZE, true, filled)
end
-- Draw food
renderer.circle(game.vars.food_x * CELL_SIZE + CELL_SIZE / 2,
game.vars.food_y * CELL_SIZE + CELL_SIZE / 2,
-- Draw food (convert center to integers)
renderer.circle(math.floor(game.vars.food_x * CELL_SIZE + CELL_SIZE / 2 + 0.5),
math.floor(game.vars.food_y * CELL_SIZE + CELL_SIZE / 2 + 0.5),
CELL_SIZE / 2, true, true)
-- Draw score