Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在外部加载。爱保存文件?(love2d&x2B;LUA)_Lua_Load_Fopen_Love2d - Fatal编程技术网

如何在外部加载。爱保存文件?(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位 我读了很多手册,我被卡住了

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

如何得到一个错误

  • 开始比赛
  • 按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保存”)
    ?如果你没有,那可能就是原因。当然,它是一个月前创建的@在保存目录中,而不是在源目录中。(如果遗漏了这一点,您可能必须通过代码来完成,因此其他人也会这样做。)