有没有一种在love2d中绘制渐变的简单方法?

时间:2012-05-19 13:35:46

标签: opengl gradient love2d

我对love2d比较新,并且想知道是否有一种简单的方法可以在不使用图像的情况下绘制线性渐变。我正在尝试绘制一个黄昏的场景,并希望从背景顶部到底部有一个微妙的渐变,但创建一个足以填充背景的图像似乎太大了。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

尝试使用宽度为1px的图像,并按照所需高度重复:

-- load
bgImage = love.graphics.newImage('gradient.png')
bgImage:setWrap('repeat', 'clamp')
bgQuad = love.graphics.newQuad(
    0, 0,
    WIDTH, bgImage:getHeight(),
    bgImage:getWidth(), bgImage:getHeight()
)

-- draw
love.graphics.drawq(bgImage, bgQuad, X, Y)

用您需要的值替换X,Y和WIDTH。在这里使用quad允许Löve处理水平重复以实现快速绘制。

(希望这有效,我还没有测试过。)

答案 1 :(得分:0)

如果您担心图像的大小和性能,最好的方法是制作1 x n像素的图像,其中n是渐变上的颜色数。 例如,如果您想要一个有两种颜色的垂直背景渐变:

love.graphics.draw(IMG,0,0,0,love.graphics.getWidth(),love.graphics.getHeight()/ 2)

:)