如何在外部加载。爱保存文件?(love2d&x2B;LUA)
我编写编辑器和游戏,它需要一个保存游戏选项。 我只想在游戏文件夹中使用一个保存文件夹。不在里面,爱 如何得到一个错误如何在外部加载。爱保存文件?(love2d&x2B;LUA),lua,load,fopen,love2d,Lua,Load,Fopen,Love2d,我编写编辑器和游戏,它需要一个保存游戏选项。 我只想在游戏文件夹中使用一个保存文件夹。不在里面,爱 如何得到一个错误 开始比赛 按Escape键进入菜单 按save game-创建savegame 按Load game-您会收到一个错误“文件不存在”,但您在几秒钟前写入了此文件 我成功地在savesm2k文件夹中保存了一个游戏,但它在文件夹外部。我不知道如何正确加载保存的游戏 二手发动机:Love2d 0.10.2 操作系统:Linux Mint 18.1 x64位 我读了很多手册,我被卡住了
lsg=love.filesystem.getSaveDirectory().."/M2k-Saves/m2ksave"
lsg=love.filesystem.getSourceBaseDirectory().."/M2k-Saves/m2ksave";
data, size = love.filesystem.read (lsg);
leveldatacopy=freadbin (data);
为什么程序不尝试读取现有文件?报告不存在吗?我尝试使用另一个命令,但使用GetSaveDirectory函数WriteMAP(需要二进制映射和数据写入)等,但它会写入无法在加载部分加载的文件
也许我应该使用LUA直接从文件夹中读取文件,但我不知道如何更正它
带有bug的示例。
文件m2ktest-load-savegame-test.love
此时此刻,每次保存时,我都会在爱情档案中手动替换保存的游戏(!)。这是不正常的
任何人都可以告诉我如何获得并正确打开保存的文件?不是从里面。爱的文件。当然是从外面。如果级别和配置可以从love文件内部读取,则保存文件必须在外部。我只能在爱的文件之外创建文件。我知道爱情档案是一个zip档案
如果需要,我可以发布一个.love文件,但游戏已经完成,并且有150kb的干净代码。您不应该在路径前面加上
love.filesystem.getSaveDirectory()
或love.filesystem.getSourceBaseDirectory()
。这是在love.filesystem
函数内部自动完成的。说
lsg = "/M2k-Saves/m2ksave"
data, size = love.filesystem.read (lsg)
leveldatacopy = freadbin (data)
应该可以工作,并将文件放在save目录中/在.love文件或游戏目录之外。(爱禁止在除保存目录外的任何地方书写。)
Love的文件系统模型就像文件系统的“堆栈”。对于文件读取,它首先在
love.filesystem.getSaveDirectory()
中查找您传入的任何路径。如果它找到一个文件,它就会使用它;否则它会在love.filesystem.getSourceBaseDirectory()
中查找(或者–如果打包–在.zip/.love文件中查找)。写入文件总是转到love.filesystem.getSaveDirectory()
,您不能写入love.filesystem.getSourceBaseDirectory()
(因为它可能不是实际的目录,而是zip文件)。不幸的是,没有工作。问题还在这里。我已经试过了:::lsg=“/M2k保存/m2ksave”数据,size=love.filesystem.read(lsg);错误(“数据:“…数据”);--添加了检查行-数据=始终为零(!)。leveldatacopy=freadbin(数据);-应为gfind字符串的错误参数#1,得到零..@АаСааФФфааа.是否创建了父目录,如love.filesystem.createDirectory(“M2k保存”)
?如果你没有,那可能就是原因。当然,它是一个月前创建的@在保存目录中,而不是在源目录中。(如果遗漏了这一点,您可能必须通过代码来完成,因此其他人也会这样做。)