2

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

love.graphics.draw( sprite, x, y )

因此当 x 或 y 不是圆形时(例如 x=100.24),精灵会显得模糊。当精灵大小不均匀时也会发生同样的情况,因为 (x,y) 指向精灵的中心。例如,一个 31x30 大的精灵会再次出现模糊,因为它的像素被绘制在非整数位置。

由于我使用的是像素艺术,所以我想一路避免这种情况,否则艺术会被这种效果破坏。到目前为止,我使用的解决方法是通过调用 math.floor() 乱扔代码来强制坐标为圆形,并通过使用绘图程序添加一行或一列透明像素来强制所有精灵具有均匀的大小, 如果需要的话。

是否有一些命令可以停用我可以在程序启动时调用的抗锯齿功能?

4

3 回答 3

4

如果你关闭抗锯齿,你只会得到锯齿,因此得名!你为什么要在非整数位置绘图,你希望它对那些小数部分做什么?(将它们四舍五入到最接近的值?截断它们?如果它们是负数怎么办?)

就我个人而言,我会单独保留低级图形并更改您的代码以使用 x 和 y 的访问器来执行您需要的舍入或截断。这可以保证您的像素艺术最终绘制在整数边界上,同时保持您以后可能需要的抗锯齿。

于 2009-08-13T14:18:29.737 回答
3

另一种可能的解决方法可能是使用 math.floor() 将整数舍入作为一种廉价的解决方法。

于 2010-03-04T17:59:36.790 回答
2

如果有人有兴趣,我一直在其他地方询问,发现我所要求的内容已经被要求作为功能: http ://love2d.org/forum/tracker.php?p=2&t=7

因此,我使用的当前版本的 Löve (0.5.0) 仍然不允许禁用抗锯齿过滤器,但该功能已经在引擎的 SVN 版本中。

于 2009-08-13T17:31:47.870 回答