Download Lua Love2D-如何让它下载文件?
标题。它只允许保存到某个目录,但是有没有办法让用它制作的可执行文件自己更新?我有代码来检查它是否过时(HttpGet),但不确定如何安装更新Download Lua Love2D-如何让它下载文件?,download,lua,love2d,Download,Lua,Love2d,标题。它只允许保存到某个目录,但是有没有办法让用它制作的可执行文件自己更新?我有代码来检查它是否过时(HttpGet),但不确定如何安装更新 主要原因是人们抱怨不得不反复下载我的RPG。使用他们可以运行的C#自动更新程序打包会更容易吗?我的第一个猜测是使用。您可以拥有一个包含当前版本号的小文件,在启动时下载该文件,然后决定是否需要升级。您不能让.love文件“自我更新”。这是不可能的,除非你使用操作系统的软件包管理器或类似的东西(apt-get-in-Ubuntu,mac上的应用商店,以及微软使
主要原因是人们抱怨不得不反复下载我的RPG。使用他们可以运行的C#自动更新程序打包会更容易吗?我的第一个猜测是使用。您可以拥有一个包含当前版本号的小文件,在启动时下载该文件,然后决定是否需要升级。您不能让.love文件“自我更新”。这是不可能的,除非你使用操作系统的软件包管理器或类似的东西(apt-get-in-Ubuntu,mac上的应用商店,以及微软使用的任何东西,如果有的话) 如果你不想这样做,那么第二个最好的方法就是让你的love2d可执行文件成为一个“shell”;一个“空游戏”,它只是从互联网上下载东西,然后执行一些初始化所有东西的功能,包括正确的游戏 正如jpjacobs所说,您可以使用LuaSocket(已经包含在LÖVE 0.7中)从web下载内容。例如,这就是下载png的方式(我从中复制了代码): 还有一种使用纯lua使用GNU解压算法解压数据的方法。它由中的
/AdvTiledLoader/external/gunzip.lua
文件实现
所以我想你可以做一个游戏:
version.lua的文件,并将其与服务器()中的文件进行比较()。该文件只包含一个数字,如“48”
需要“latest.main”
- 我对luasocket不熟悉。有可能有一种方法可以从中获取“上次更新”的日期,因此您可以简单地删除最新版本号的内容
- 我自己也没用过gunzip.lua。我不知道它如何处理多个文件或目录
love.filesystem
(进入游戏指定的保存文件夹)保存的任何内容都应覆盖游戏的.love文件的内容。我不完全确定这是否适用于代码文件,但它至少适用于其他资源。只要代码文件在首次由require
加载之前进行了更新,我不明白为什么它不起作用。
if not love.filesystem.exists("expo.png") then
local http = require("socket.http")
local b, c, h = http.request("http://love2d.org/w/images/e/e3/Resource-AnalExplosion.png")
love.filesystem.write("expo.png", b)
end