我有以下代码,在黑色背景上绘制一个蓝色矩形和一条红线。
function love.load()
love.window.setMode(300,200,{fullscreen=false})
end
function love.draw()
love.graphics.setColor(0, 0, 255, 255)
love.graphics.rectangle("fill", 20, 20, 100, 20)
love.graphics.setColor(255, 0, 0, 255)
love.graphics.line(70, 30, 120, 30)
end
我试图将绘图移动到画布上,所以我的代码改为
local canvas
function love.load()
love.window.setMode(300,200,{fullscreen=false})
canvas = love.graphics.newCanvas(300, 200)
end
function love.draw()
love.graphics.setCanvas(canvas)
love.graphics.setColor(0, 0, 255, 255)
love.graphics.rectangle("fill", 20, 20, 100, 20)
love.graphics.setColor(255, 0, 0, 255)
love.graphics.line(70, 30, 120, 30)
love.graphics.setCanvas()
love.graphics.draw(canvas)
end
但第二个版本只在黑色背景上绘制一条红线。
难道我做错了什么?
我使用的是Windows 10 Enterprise 64位,Lua 5.3.5,Löve11.2.0.MysteriousMysteries。
你需要把这条线:
love.graphics.setColor(1, 1, 1, 1)
...在love.graphics.draw(canvas)
线之前重置画布可以涂上的颜色。使用此功能,您可以过滤颜色/更改整个画布的Alpha通道。
顺便说一下,自v11以来,颜色值现在在0 - > 1范围内。
文档中有一个代码示例,其中有关于此的注释...