2016-08-11 101 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

相關問題