love.graphics.translate (Français)

Déplace (anglais : translate) le système de coordonnées en deux dimensions.

Lorsque cette fonction est appelée avec deux nombre, dx, et dy, toutes les opérations suivantes auront pour effet d'avoir leurs propres coordonnées x et y traitées comme si elles étaient x+dx et y+dy.

Les opérations de changement d'échelle (scale) et de déplacement (translate) ne sont pas commutatives, leur appel dans un ordre différent, changera donc les coordonnées finales.

Ce changement est conservé jusqu'à ce qu'à la sortie de la fonction love.draw() ou lorsqu'un appelle à love.graphics.pop remette en l'état d'un précédent love.graphics.push.

Une translation utilisant des nombres entiers évitera des déformation ou floutages lors des tracages des images ou fontes après celle-ci.

Fonction

Synopsis

love.graphics.translate( dx, dy )

Arguments

number (Français) dx
Le déplacement relatif sur l'axe des x.
number (Français) dy
Le déplacement relatif sur l'axe des y.

Retourne

Rien.

Exemples

Déplace vers le bas et la droite de 10 pixels. Rappelez-vous, le déplacement est remis à zéro à la fin de chaque love.draw.

function love.draw()
   love.graphics.translate(10, 10)
   love.graphics.print("Texte", 5, 5)   -- Tracera aux coordonnées 15x15
end


Déplace le système de coordonnées avec la souris :

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

-- restaure la position avec le bouton droit de la souris :
function love.mousepressed(x, y, button, istouch)
   if button == 2 then
      tx = 0
      ty = 0
   end
end

Voir également



Autres langues