Love2d 无法在相同目录中找到字体文件

我正在使用 Love2d 0.10.1。Love2d 返回错误,说字体文件无法加载,因为它不存在。然而,这个文件在子目录中。我试过给出包含文件名的全路径,但它不起作用。字体文件必须在另一个目录中,因为它不会被包含在最终的 exe 文件中。

我的当前目录是这样的

--- love 2d
------ game
---------- main.lua
---------- fonts
-------------- segoeui.ttf
------ love.exe

当最终的 exe 文件制作出来时,它将会是这样的

--- love 2d
------ fonts
---------- segoeui.ttf
------ game.exe

我的代码(简化版)

love.window.setMode(500, 500)  -- 打开窗口
font = love.graphics.newFont('segoeui.ttf', 20)  -- 加载字体
love.graphics.print(text, 100, 100)  -- 输出文本
love.graphics.present()  -- 显示文本
while true do end

错误信息

enter image description here

我发现有人说这是因为 Love2d 无法访问主要目录之外的文件夹,所以我试了这个

love.window.setMode(500, 500)  -- 打开窗口
local file = io.open("fonts\\segoeui.ttf", "r")
local content = file:read "*a"
local data, err = love.filesystem.newFileData(content, 'segoeui.ttf')
font = love.graphics.newFont(data, 20)  -- 加载字体
love.graphics.print("hey", 100, 100)  -- 输出文本
love.graphics.present()  -- 显示文本
while true do end

这样,io.open 成功打开了文件,读取了内容,然后将其转换为 FileData 并提供给 newFont。然而,这返回了不能加载字体的错误,因为 data 是不正确的。我猜这不是加载它的方法。

点赞
用户6621638
用户6621638

如果我没有搞错,你想要字体放在与你使用 love2d 运行的应用程序(.lua 文件)相同的目录中,而不是与 love2d 可执行文件相同的目录中。

2016-08-11 15:48:57