題名。特定のディレクトリへの保存のみが許可されていますが、それで作成された実行可能ファイル自体を更新する方法はありますか? 古くなっているかどうかを確認するコード (HttpGet) がありますが、新しい更新プログラムをインストールする方法がわかりません。
主な理由は、人々が私の RPG を繰り返し再ダウンロードしなければならないことに不満を持っていることです。彼らが実行できる C# auto-Updater でパッケージ化する方が簡単でしょうか?
.loveファイルを「更新」することはできません。オペレーティングシステムのパッケージマネージャーなどを使用しない限り、これは不可能です(Ubuntuのapt-get、Macのアプリストア、およびMicrosoftが使用しているもの(ある場合))。
それを望まない場合、その作業を行うための2番目に良い方法は、love2d実行可能ファイルを「シェル」にすることです。インターネットからコンテンツをダウンロードするだけの「空のゲーム」で、後で適切なゲームを含むすべてを初期化する関数を実行します。
jpjacobsが言うように、LuaSocket(すでにLÖVE0.7に含まれています)を使用してWebからコンテンツをダウンロードできます。たとえば、これは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を使用してGNUunzipアルゴリズムを使用してデータを解凍する方法もあります。これは、 KadobaのAdvancedTileLoader/AdvTiledLoader/external/gunzip.lua
のファイルによって実装されます。
だから私はあなたが次のようなゲームを作ることができると思います:
version.lua
)と比較することから始めます。そのファイルには、「48」のような数字が含まれているだけです。require 'latest.main'
ノート:
私の最初の推測は、LuaSocketを使用することです。現在のバージョン番号を含む小さなファイルを用意し、それを起動時にダウンロードしてから、アップグレードが必要かどうかを判断できます。