Difference between revisions of "love.graphics.draw (简体中文)"

(Function)
(Undo revision 28031 by Popolon (talk) - The default value for sy is the same value as sx, not 1.)
(Tag: Undo)
 
(One intermediate revision by one other user not shown)
(No difference)

Latest revision as of 05:20, 6 October 2022

在屏幕上绘制物件。可绘制的物件可以是被加载的图形loaded images,也可以是其他可绘制Drawable物,比如粒子系统Particle System

除了简单地绘制之外,draw()方法还可以旋转、缩放或平移物件(比如,让图形在指定坐标系里居中)。

love.graphics.draw()默认从左上角开始计算锚点。

你也可以给sx或sy赋一个负值,以让绘制物水平或者垂直翻转。

物件的左上角会被绘制在(x, y)坐标处;(ox, oy)决定了物件的偏移值,偏移的计算先于旋转和缩放;然后物件被缩放(sx, sy)倍;接下来是旋转r弧度。

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.

一般偏移值都设置成物件高度和宽度的一半,以便让物件的中心处于(x, y)坐标处。

方法

语法

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

参数

Drawable drawable
可绘制物。
number x
欲绘制物件的x轴坐标。
number y
欲绘制物件的y轴坐标。
number r (0)
旋转量(弧度)。
number sx (1)
缩放因子(x轴)。可以为负值。
number sy (sx)
缩放因子(y轴)。可以为负值。
number ox (0)
原始偏移量(x轴)。(比如设置为20,则会让欲绘制的物件向左偏移20像素。)
number oy (0)
原始偏移量(y轴)。(比如设置为20,则会让欲绘制的物件向下偏移20像素。)
number kx (0)
平行形变因子(x轴)。
number ky (0)
平行形变因子(y轴)。

返回

无。

Function

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

自0.9.0开始,love.graphics.drawq函数被合并到了love.graphics.draw,以下的用法用以替代love.graphics.drawq。

Synopsis

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

Arguments

Texture texture
A Texture (Image or Canvas) to texture the Quad with.
Quad quad
The Quad to draw on screen.
number x
The position to draw the object (x-axis).
number y
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).
number kx (0)
Shearing factor (x-axis).
number ky (0)
Shearing factor (y-axis).

Returns

Nothing.

示例

在坐标(100, 100)处绘制图像 (the Hamster Ball)

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

在坐标(100, 100)处,从中心开始绘制图像 (the Hamster Ball) ,并旋转90度

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.

Draw the top half of an image (the Hamster Ball) at 100 by 100 pixels.

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

See Also


Other Languages