我对love2d 比较陌生,想知道是否有一种简单的方法可以在不使用图像的情况下绘制线性渐变。我正在尝试绘制一个黄昏时分的场景,并且想要从背景顶部到底部的微妙渐变,但是创建一个足够大以填充背景的图像似乎太大了。
有什么想法吗?
尝试使用 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 替换为您需要的值。在这里使用四边形可以让 Löve 处理水平重复以实现非常快速的绘图。
(希望这可行,我还没有测试过。)
如果您担心图像的大小和性能,最好的方法是制作 1 xn 像素的图像,其中 n 是渐变上的颜色数。例如,如果您想要具有 2 种颜色的垂直背景渐变:
love.graphics.draw(img,0,0,0,love.graphics.getWidth(),love.graphics.getHeight()/2)
:)