love.graphics.translate
Перемещает систему координат на две оси.
Когда эта функция вызывается с двумя числами, dx и dy, все последующие операции рисования выполняются так, как если бы их координаты x и y были x+dx и y+dy.
Масштабирование и перемещение не являются коммутативными операциями, поэтому вызов их в разном порядке изменит результат.
Это изменение сохраняется до тех пор, пока love.draw() не завершится или же love.graphics.pop не вернётся к предыдущему love.graphics.push.
Перемещение с помощью целых чисел предотвратит разрывы/размытия изображений и шрифтов, нарисованных после перемещения.
Функция
Синтаксис
love.graphics.translate( dx, dy )
Аргументы
number dx- Перемещение относительно оси x.
number dy- Перемещение относительно оси y.
Возвращаемое значение
Ничего.
Примеры
Переместить вниз и вправо на 10 пикселей. Помните, что перемещение сбрасывается в конце каждого вызова love.draw.
function love.draw()
love.graphics.translate(10, 10)
love.graphics.print("Text", 5, 5) -- will effectively render at 15x15
end
Переместить систему координат с помощью мыши:
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
См. также
- love.graphics
- love.graphics.pop
- love.graphics.push
- love.graphics.rotate
- love.graphics.scale
- love.graphics.shear
- love.graphics.origin
© 2006–2020 LÖVE Development Team
Licensed under the GNU Free Documentation License, Version 1.3.
https://love2d.org/wiki/love.graphics.translate