How to avoid distortion of the ball?When it moves, it deforms.
Posted: Sun Dec 24, 2023 1:51 am
How to avoid distortion of the ball?When it moves, it deforms.
Code: Select all
local ball_x, ball_y, x_speed, y_speed, ball_size
local canvas, escala
function love.load()
-- Inicializa las variables de la pelota
ball_x = 64
x_speed = 0.1
ball_y = 64
y_speed = 0.1
ball_size = 6
-- Tamaño del lienzo
local canvasSize = 128
-- Inicializa el lienzo y la escala
love.graphics.setDefaultFilter('nearest', 'nearest')
canvas = love.graphics.newCanvas(canvasSize, canvasSize)
canvas:setFilter('nearest', 'nearest')
escala = love.graphics.getWidth() / canvasSize
-- Escala fija para mantener una relación de aspecto de 1:1
love.window.setMode(canvasSize * escala, canvasSize * escala, {resizable=true})
end
function love.update(dt)
-- Lógica del juego
ball_y = ball_y + y_speed
ball_x = ball_x + x_speed
-- Lógica de rebote en las paredes
if ball_x > 127 - ball_size or ball_x < 1 then
x_speed = -x_speed
end
if ball_y > 127 - ball_size or ball_y < 1 then
y_speed = -y_speed
end
end
function love.draw()
-- Dibuja en el lienzo
love.graphics.setCanvas(canvas)
love.graphics.clear()
-- Dibuja la pelota en el lienzo
love.graphics.setColor(1, 1, 1)
love.graphics.circle("fill", ball_x, ball_y, ball_size)
love.graphics.setCanvas()
-- Dibuja el lienzo escalado sin distorsión
love.graphics.draw(canvas, 0, 0, 0, escala, escala)
end