Translates the coordinate system in two dimensions.
When this function is called with two numbers, dx, and dy, all the following drawing operations take effect as if their x and y coordinates were x+dx and y+dy.
Scale and translate are not commutative operations, therefore, calling them in different orders will change the outcome.
This change lasts until love.draw() exits or else a love.graphics.pop reverts to a previous love.graphics.push.
Translating using whole numbers will prevent tearing/blurring of images and fonts draw after translating.
love.graphics.translate( dx, dy )
Nothing.
Translate down and to the right by 10 pixels. Remember, the translation is reset at the end of each love.draw.
function love.draw()
love.graphics.translate(10, 10)
love.graphics.print("Text", 5, 5) -- will effectively render at 15x15
end
Move the coordinate system with the mouse:
tx=0
ty=0
function love.draw()
mx = love.mouse.getX()
my = love.mouse.getY()
if love.mouse.isDown(1) then
if not mouse_pressed then
mouse_pressed = true
dx = tx-mx
dy = ty-my
else
tx = mx+dx
ty = my+dy
end
elseif mouse_pressed then
mouse_pressed = false
end
love.graphics.translate(tx, ty)
-- example graphics:
love.graphics.circle( "line", 0, 0, 400 )
love.graphics.line(-440, 0, 440, 0)
love.graphics.line(0, -440, 0, 440)
end
-- restore position with the right mouse button:
function love.mousepressed(x, y, button, istouch)
if button == 2 then
tx = 0
ty = 0
end
end
© 2006–2020 LÖVE Development Team
Licensed under the GNU Free Documentation License, Version 1.3.
https://love2d.org/wiki/love.graphics.translate