Проблема холста, не может заставить это нарисовать прямоугольник - PullRequest
1 голос
/ 10 апреля 2019

У меня есть следующий код, который рисует синий прямоугольник и красную линию над ним на черном фоне.

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öve 11.2.0. Таинственные загадки.

1 Ответ

2 голосов
/ 11 апреля 2019

Вам нужно поставить строку:

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

… перед строкой love.graphics.draw(canvas) для сброса цветов, которыми может быть окрашен холст. При этом вы можете фильтровать цвета / изменять альфа-канал всего холста.

Кстати, значения цвета теперь находятся в диапазоне 0 -> 1, начиная с v11.

В документации приведен пример кода с примечанием об этом здесь ...

https://love2d.org/wiki/Canvas

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...