标题。它只允许保存到某个目录,但有没有办法使用它自己更新自己?我有代码来检查它是否已过期(HttpGet),但不确定如何安装更新的更新。
主要原因是人们抱怨不得不反复重新下载我的RPG。用它们可以运行的C#自动更新程序打包它会更容易吗?
答案 0 :(得分:9)
您无法使.love文件“自行更新”。这是不可能的,除非你使用操作系统的包管理器或类似的东西(在Ubuntu中的apt-get,在mac上的app store,以及微软使用的任何东西,如果有的话)。
如果你不想这样做,那么实现这项工作的第二个最佳方法就是让你的love2d可执行文件成为“shell”;一个“空的游戏”,它只是从互联网上下载东西,然后它会执行一些初始化所有东西的功能,包括正确的游戏。
正如jpjacobs所说,你可以使用LuaSocket从网上下载东西(已经包含在LÖVE0.7中)。例如,这是您下载png的方式(我已经从here复制了代码):
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
还有一种使用纯lua使用GNU解压缩算法解压缩数据的方法。它由Kadoba's Advanced TileLoader中的/AdvTiledLoader/external/gunzip.lua
文件实现。
所以我想你可以制作一款游戏:
version.lua
的文件,然后将其与服务器中的文件(http://www.your-server.com/latest-version-number)进行比较。该文件只包含一个数字,如“48”。require 'latest.main'
注意:
答案 1 :(得分:1)
我的第一个猜测是使用LuaSocket。您可以拥有一个包含当前版本号的小文件,在启动时下载该文件,然后确定升级是否必要。