love.graphics.translate

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 the next love.draw call, or a love.graphics.pop reverts to a previous love.graphics.push, or love.graphics.origin is called - whichever comes first.

Translating using whole numbers will prevent tearing/blurring of images and fonts draw after translating.

Function

Synopsis

love.graphics.translate( dx, dy )

Arguments

number dx
The translation relative to the x-axis.
number dy
The translation relative to the y-axis.

Returns

Nothing.

Examples

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


See Also


Other Languages