lua - Love2D NewImageFont 不会渲染

标签 lua love2d

我正在开发一款游戏,并创建了一个简单的数字“字体”来显示天数。

Love2D 的 newImageFont() 函数允许使用 specifically-formatted image 为任意数量的字形创建字体。

我已经创建了我的字体,并将其加载到我的 love.load() 函数中:

dayFont = gr.newImageFont("/fonts/dayFont.png", "1234567")

这是字体图像文件:

enter image description here

然后在 love.draw() 中,我试图用它来显示一个数字:

love.graphics.reset()
love.graphics.setFont(dayFont)
love.graphics.printf("1", 260, 20, 30, "left")

但什么也没有出现。

在排错时,我发现当我不设置字体时,数字确实出现在预期的位置,所以问题似乎是 imageFont 本身。

最佳答案

问题出在 love.graphics.printf() 的第 4 个参数中,它设置了文本的最大宽度。因为它被设置为 30 像素的最大宽度,而字形本身是 36 像素宽,所以它根本不渲染任何字形。

将 love.draw() 中的行更新为:

love.graphics.printf("1", 260, 20, 40, "left")

解决了这个问题。

关于lua - Love2D NewImageFont 不会渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73779483/

相关文章:

MySQL 代理查询重写

c++ - 使用具有最少 C++/SWIG/Lua 代码的共享 dll 的链接错误

lua - 为什么它说 : "Bad argument #1 to ' remove' (table expected, 没有 )'"

oop - Lua继承和方法

c++ - 我可以将我的 C++ 代码绑定(bind)到 lua 并将其开发到某个 lua 游戏引擎吗?

在 setfenv 函数中调用函数时的 Lua 环境

lua - Redis:将值中的关键引用扩展到它们的值

Lua 嵌套表获取元素

java - 程序 map 生成

c++ - 如何使用 C++ 分发 lua 文件