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