在 Löve2D 中使用四边形关闭缩放时的抗锯齿

Turning off antialiasing on zoom with quad in Löve2D

我正在使用 Löve2D 编写一个小游戏。 Löve2D 是 Lua 的开源游戏引擎。我遇到的问题是,当您在 integer 位置绘制时,某些抗锯齿过滤器会自动应用于您的精灵。

love.graphics.draw( texture, quad, x, y, r, sx, sy)

我的计划是:

  1. 将一张小图片裁剪成 9 份以适合四边形。
  2. 放大它以适合 UI。
  3. 创建变量UI.

我的形象是:
full image

放大:
5px green rectangle in 15px rounded rectangle

我的测试代码是:

function love.load()
    sprite = love.graphics.newImage('image.png')
    centerbox = love.graphics.newQuad(5, 5, 5, 5, sprite:getDimensions()
end
function love.draw()
    love.graphics.draw(sprite, centerbox, 0, 0, 0, 30, 30)

我只想显示蓝色: x=5px, y=5px, w=5px, h=5px

结果: That's not fun
5 是整数,30 是整数,0 是整数

我的 UI 是: That's not cool

如何才能只得到我想要的像素?
我已经读过 Turning off antialiasing in Löve2D

你必须阅读...
https://love2d.org/wiki/Quad ...尤其是黄色的 Alertbox。