love.graphics.draw (Deutsch)

Zeichnet ein zeichenbares Objekt (z.B. ein Bild) auf den Bildschirm, wobei sich Größe, Rotation und Scherung anpassen lassen.

Objekte werden dabei relativ zu ihrem lokalen Koordinatensystem gezeichnet. Der Ursprung ist standardmäßig die obere linke Ecke bei Bildern und Leinwänden. Alle Skalierungs-, Rotations- und Verformungsoperationen werden daher relativ zu diesem Punkt durchgeführt.

Um ein Objekt um seine eigene Mitte zu rotieren, muss der Ursprung in die Mitte des Objekts verschoben werden. Das Objekt kann durch Verwendung negativer Skalierungswerte gespiegelt werden.

Verschiebungen werden angewendet bevor das Objekt rotiert, skaliert oder deformiert wird. Skalierung und Scherung laufen dabei vor der Rotation ab.

Funktion

Übersicht

love.graphics.draw( drawable, x, y, r, sx, sy, ox, oy, kx, ky )

Argumente

Drawable (Deutsch) drawable
Ein zeichenbares Objekt.
number (Deutsch) x (0)
Die Position auf der x-Achse an der das Objekt gezeichnet werden soll.
number (Deutsch) y (0)
Die Position auf der y-Achse an der das Objekt gezeichnet werden soll.
number (Deutsch) r (0)
Die Rotation in Radianten.
number (Deutsch) sx (1)
Der Skalierungsfaktor in x-Richtung.
number (Deutsch) sy (sx)
Der Skalierungsfaktor in y-Richtung.
number (Deutsch) ox (0)
Verschiebung vom Urpsrung auf der x-Achse.
number (Deutsch) oy (0)
Verschiebung vom Urpsrung auf der y-Achse.
Available since LÖVE 0.8.0
number (Deutsch) kx (0)
Der Scherfaktor in x-Richtung.
number (Deutsch) ky (0)
Der Scherfaktor in y-Richtung.

Rückgabewerte

Keine.

Funktion

Available since LÖVE 0.9.0
It has replaced love.graphics.drawq.

Übersicht

love.graphics.draw( image, quad, x, y, r, sx, sy, ox, oy, kx, ky )

Argumente

Image oder Canvas image
Ein Bild oder eine Leinwand mit der das Quad texturiert werden soll.
Quad (Deutsch) quad
Das Quad welches gezeichnet werden soll.
number (Deutsch) x (0)
Die Position auf der x-Achse an der das Objekt gezeichnet werden soll.
number (Deutsch) y (0)
Die Position auf der y-Achse an der das Objekt gezeichnet werden soll.
number (Deutsch) r (0)
Die Rotation in Radianten.
number (Deutsch) sx (1)
Der Skalierungsfaktor in x-Richtung.
number (Deutsch) sy (sx)
Der Skalierungsfaktor in y-Richtung.
number (Deutsch) ox (0)
Verschiebung vom Urpsrung auf der x-Achse.
number (Deutsch) oy (0)
Verschiebung vom Urpsrung auf der y-Achse.
number (Deutsch) kx (0)
Der Scherfaktor in x-Richtung.
number (Deutsch) ky (0)
Der Scherfaktor in y-Richtung.

Rückgabewerte

Keine.

Beispiele

Zeichnet ein Bild (den Hamsterball) an Position [x: 100, y: 100]

function love.load()
   hamster = love.graphics.newImage("hamster.png")
end
function love.draw()
   love.graphics.draw(hamster, 100, 100)
end

Zeichnet ein Bild (den Hamsterball) an Position [x: 100, y: 100] und rotiert es um 90 Grad

function love.load()
   hamster = love.graphics.newImage("hamster.png")
   width = hamster:getWidth()
   height = hamster:getHeight()
end
function love.draw()
   love.graphics.draw(hamster, 100, 100, math.rad(90), 1, 1, width / 2, height / 2)
end

Available since LÖVE 0.9.0
This functionality is not supported in earlier versions.

Zeichnet die obere Hälfte eines Bildes (Hamsterball) an Position [x: 100, y: 100]

function love.load()
   image = love.graphics.newImage("hamster.png")
   quad = love.graphics.newQuad(0, 0, 128, 64, image:getWidth(), image:getHeight())
end

function love.draw()
	love.graphics.draw(image, quad, 100, 100)
end

Siehe auch


Andere Sprachen