2016-08-11 108 views
1

我正在使用love2d 0.10.1。 Love2d返回字体文件无法加载的错误,因为它不存在。但该文件位于子目录中。我试图给文件名的完整路径,它不会工作。字体文件必须在另一个目录中为,因为在最终的exe中不会包含该文件。Love2d无法在同一目录中找到字体文件

我现在的目录是这样

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

,并期待这样最终exe文件时作出

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

我的代码(简化)

love.window.setMode(500, 500) -- Open window 
font = love.graphics.newFont('segoeui.ttf', 20) -- Load font 
love.graphics.print(text, 100, 100) -- Print text 
love.graphics.present() -- Display text 
while true do end 

错误消息

enter image description here

我发现有人说这是因为爱无法访问外最主要的一个文件夹,所以我想这个

love.window.setMode(500, 500) -- Open window 
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) -- Load font 
love.graphics.print("hey", 100, 100) -- Print text 
love.graphics.present() -- Display text 
while true do end 

这样io.open成功打开该文件,内容被读取,然后转换成FileData然后馈送给newFont。但是,这会返回字体无法加载的错误,因为数据不正确。我想这不是加载它的方式。

回答

1

如果我没有弄错,你希望字体在你使用love2d(.lua文件)运行的应用程序的目录中,而不是在带有love2d可执行文件的目录中。

+0

哦,它现在的作品。但是没有办法直接从windows字体目录(C:\ Windows \ Fonts)使用它们。如果不是,我必须复制20Mo的字体,这是相当多的。 –

+0

此外,这似乎与每个love2d函数都是一样的:不能在工作目录之外使用文件 –

+0

简单的测试是将文件“filename.png”放在当前工作目录的上方一个目录中,然后查看是否“。 ./filename.png“可以被访问。如果是这样,那么你知道你可以访问当前工作目录之外的文件。 – Cricket

相关问题