画布问题,无法让它画一个矩形

问题描述 投票:1回答:1

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

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

Not Using a 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

Using a Canvas

但第二个版本只在黑色背景上绘制一条红线。

难道我做错了什么?

我使用的是Windows 10 Enterprise 64位,Lua 5.3.5,Löve11.2.0.MysteriousMysteries。

lua love2d
1个回答
2
投票

你需要把这条线:

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

...在love.graphics.draw(canvas)线之前重置画布可以涂上的颜色。使用此功能,您可以过滤颜色/更改整个画布的Alpha通道。

顺便说一下,自v11以来,颜色值现在在0 - > 1范围内。

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

https://love2d.org/wiki/Canvas

© www.soinside.com 2019 - 2024. All rights reserved.