【问题标题】:How to loading outside .love save file? (love2d+ LUA)如何加载外部.love保存文件? (love2d+ LUA)
【发布时间】:2017-11-22 15:50:32
【问题描述】:

我编写编辑器和游戏,它需要保存游戏选项。 我只想在游戏文件夹中使用保存文件夹。不在里面。爱

如何获得错误。

  1. 开始游戏
  2. 按退出键进入菜单
  3. 按保存游戏 - 这会创建保存游戏
  4. 按加载游戏 - 您收到错误“文件不存在”但您在几秒钟前写入了此文件。

我成功将游戏保存在 savesm2k 文件夹中,但它位于 .love 文件之外,我不知道如何正确加载保存的游戏。

使用的引擎:Love2d 0.10.2 操作系统:Linux Mint 18.1 x64bit

我阅读了很多手册,但我被困住了。

为了加载保存游戏,我使用这个命令

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 直接从文件夹中读取文件,但我不知道如何更正。

错误示例。 https://github.com/dj--alex/m2ktest 文件 m2ktest-load-savegame-test.love

此时,在每次保存时,我都会手动替换爱情存档中保存的游戏(!)。这不正常。

谁能告诉我如何获取和更正打开的保存文件?不是来自 .love 文件。当然是从外面来的。如果可以从爱文件中读取级别和配置,则保存文件必须在外部。我只能在 love file 之外创建文件。我知道 love 文件是一个 zip 存档。

如果需要,我可以发布一个 .love 文件,但游戏已经完全完成并且有 150kb 的干净代码。

【问题讨论】:

    标签: lua load fopen love2d


    【解决方案1】:

    您不应在路径前加上 love.filesystem.getSaveDirectory()love.filesystem.getSourceBaseDirectory()。这是在love.filesystem 函数内部自动完成的。说

    lsg = "/M2k-Saves/m2ksave" 
    data, size = love.filesystem.read (lsg)
    leveldatacopy = freadbin (data)
    

    应该可以,并将文件放在.love文件或游戏目录之外的保存目录/之外。 (爱禁止在保存目录以外的任何地方写。)


    Love 的文件系统模型就像文件系统的“堆栈”。对于文件读取,它首先使用您传入的任何路径在love.filesystem.getSaveDirectory() 中查找。如果找到文件,则使用该文件;否则,它会在 love.filesystem.getSourceBaseDirectory() 中查找(或者——如果打包的话——在 .zip / .love 文件中)。写文件总是去love.filesystem.getSaveDirectory(),你不能写到love.filesystem.getSourceBaseDirectory()(因为它可能不是一个实际的目录,而是一个zip文件)。

    【讨论】:

    • 很遗憾没有工作。问题仍然在这里。我已经尝试过了::: lsg = "/M2k-Saves/m2ksave" data, size = love.filesystem.read (lsg);错误(“数据:”..数据); -- 添加检查行 - 数据 = nil (!) 总是。 leveldatacopy=freadbin(数据); - 预期的 gfind 字符串的错误参数 #1,得到 nil ..
    • @АлексейФуфаев 您是否创建了父目录,例如love.filesystem.createDirectory( "M2k-Saves" )?如果你不这样做,那可能就是原因。
    • 当然是一个月前创建的。 s46.radikal.ru/i111/1706/be/413f6fe8ee82t.jpg
    • @АлексейФуфаев 在保存目录中,而不是源目录中。 (如果缺失,您可能不得不通过代码来完成,因此其他人也会发生这种情况。)
    猜你喜欢
    • 1970-01-01
    • 2014-02-20
    • 1970-01-01
    • 2013-09-17
    • 2011-07-25
    • 1970-01-01
    • 1970-01-01
    • 2011-09-20
    • 1970-01-01
    相关资源
    最近更新 更多