Difference between revisions of "love.graphics.draw"

m (Clarification of language)
(Rewritten. :o Feel free to undo or rerewrite!)
Line 1: Line 1:
Draws objects on screen. Drawable objects are usually [[Image|loaded images]], but may be other kinds of [[Drawable]] objects, such as a [[ParticleSystem]].
+
Draws a [[Drawable]] object (an [[Image]], [[Canvas]], [[SpriteBatch]] or [[ParticleSystem]]) on the screen with optional rotation, scaling and shearing.
  
In addition to simple drawing, the draw() function can rotate and scale the object at the same time, as well as offset the image (for example, to center the image at the chosen coordinates).
+
The object is drawn with its top-left corner at the given position on the screen, minus the offset.
  
love.graphics.draw() anchors from the top left corner by default.
+
Rotation is given in radians, which can be converted to from degrees using Lua's <tt>math.rad</tt> function.
  
All values can be negative. For example, you can specify a negative value for sx or sy to flip the drawable horizontally or vertically.
+
The width and height of the object are multiplied by the scaling factors. A negative scaling factor will result in the drawing being flipped.
  
The pivotal point is (x, y) on the screen and (ox, oy) in the internal coordinate system of the drawable object, before rotation and scaling. The object is scaled by (sx, sy), then rotated by r around the pivotal point.
+
The origin is a point relative to the object, where the object is positioned, scaled, and rotated from. For example, with an origin point at half the object's width and height it can be rotated around its center.
  
The default [[ColorMode]] blends the current drawing color into the image, so you will often want to invoke [[love.graphics.setColorMode]]("replace") before drawing images, to ensure that the drawn image matches the source image file.
+
The right and bottom edges of the object are shifted at an angle defined by the shearing factors.
 
 
The origin offset values are most often used to shift the images up and left by half of its height and width, so that (effectively) the specified x and y coordinates are where the center of the image will end up.
 
 
== Function ==
 
== Function ==
 
=== Synopsis ===
 
=== Synopsis ===

Revision as of 03:46, 4 March 2013

Draws a Drawable object (an Image, Canvas, SpriteBatch or ParticleSystem) on the screen with optional rotation, scaling and shearing.

The object is drawn with its top-left corner at the given position on the screen, minus the offset.

Rotation is given in radians, which can be converted to from degrees using Lua's math.rad function.

The width and height of the object are multiplied by the scaling factors. A negative scaling factor will result in the drawing being flipped.

The origin is a point relative to the object, where the object is positioned, scaled, and rotated from. For example, with an origin point at half the object's width and height it can be rotated around its center.

The right and bottom edges of the object are shifted at an angle defined by the shearing factors.

Function

Synopsis

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

Arguments

Drawable drawable
A drawable object.
number x (0)
The position to draw the object (x-axis).
number y (0)
The position to draw the object (y-axis).
number r (0)
Orientation (radians).
number sx (1)
Scale factor (x-axis).
number sy (sx)
Scale factor (y-axis).
number ox (0)
Origin offset (x-axis).
number oy (0)
Origin offset (y-axis).
Available since LÖVE 0.8.0
number kx (0)
Shearing factor (x-axis).
number ky (0)
Shearing factor (y-axis).

Returns

Nothing.

Examples

Draw an image (the Hamster Ball) at 100 by 100 pixels

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

Draw an image (the Hamster Ball) from the center at 100 by 100 pixels, rotated by 90 degrees

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

See Also


Other Languages