Canvas 问题,无法绘制矩形

Canvas problem, cannot get it to draw a rectangle

我有以下代码在黑色背景上绘制一个蓝色矩形和一条红线。

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

我试图将绘图移动到 canvas 所以我的代码更改为

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öve 11.2。0.Mysterious 谜团。

您需要输入以下行:

love.graphics.setColor(1, 1, 1, 1)

… 在 love.graphics.draw(canvas) 行之前重置 canvas 可以绘制的颜色。有了这个,您可以过滤 colours/change 整个 canvas.

的 alpha 通道

顺便说一句,从 v11 开始,颜色值现在在 0 -> 1 范围内。

文档中有一个代码示例,这里有关于此的注释...

https://love2d.org/wiki/Canvas