제목. 그것은 오직 특정 디렉토리에 저장하는 것이 허용되었지만, 그것으로 만든 실행 파일을 스스로 업데이트하는 방법이 있습니까? 오래된 (HttpGet)인지 확인하는 코드가 있지만 최신 업데이트를 설치하는 방법을 모르겠습니다.Lua Love2D - 어떻게 파일을 다운로드 할 수 있습니까?
주된 이유는 사람들이 반복적으로 내 RPG를 다시 다운로드해야한다는 불평을합니다. 실행할 수있는 C# 자동 업데이터로 패키지하는 것이 더 쉬울까요?
제목. 그것은 오직 특정 디렉토리에 저장하는 것이 허용되었지만, 그것으로 만든 실행 파일을 스스로 업데이트하는 방법이 있습니까? 오래된 (HttpGet)인지 확인하는 코드가 있지만 최신 업데이트를 설치하는 방법을 모르겠습니다.Lua Love2D - 어떻게 파일을 다운로드 할 수 있습니까?
주된 이유는 사람들이 반복적으로 내 RPG를 다시 다운로드해야한다는 불평을합니다. 실행할 수있는 C# 자동 업데이터로 패키지하는 것이 더 쉬울까요?
.love 파일을 "자체 업데이트"할 수 없습니다. 작동 시스템의 패키지 관리자 나 비슷한 것을 사용하지 않는다면 불가능합니다 (우분투에서는 apt-get, Mac에서는 app store, 사용중인 경우 microsoft에서 사용).
그렇게하고 싶지 않다면, 그 일을하는 두 번째 가장 좋은 방법은 love2d 실행 파일을 "쉘"로 만드는 것입니다. 단순히 인터넷에서 물건을 다운로드하는 "빈 게임"이며, 나중에 적절한 게임을 포함하여 모든 것을 초기화하는 일부 기능을 실행합니다.
jpjacobs에 따르면 LuaSocket (이미 LÖVE 0.7에 포함되어 있음)을 사용하여 웹에서 자료를 다운로드 할 수 있습니다. 예를 들어,이 (내가 here의 코드를 복사 한) 당신은 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
순수 루아를 사용하여 GNU의 압축 해제 알고리즘을 사용하여 데이터의 압축을 해제 할 수있는 방법도 있습니다. 파일은 /AdvTiledLoader/external/gunzip.lua
Kadoba's Advanced TileLoader에 있습니다.
version.lua
라는 파일을 읽기, 서버 (
http://www.your-server.com/latest-version-number)에있는 파일과 비교하여
require 'latest.main'
노트와 같은 아마 뭔가 :
내 첫 번째 추측은 LuaSocket입니다. 현재 버전 번호가 포함 된 작은 파일을 가지고 시작할 때 다운로드 한 다음 업그레이드가 필요한지 여부를 결정할 수 있습니다.
실제로 "셸"이 아니더라도 자체를 업데이트 할 수 있습니다. .love 파일을 변경할 수는 없지만'love.filesystem' (게임의 지정된 저장 폴더로 들어가는)으로 저장 한 내용은 게임의 .love 내용을 덮어 씁니다. 나는 코드 파일에 대해 잘 작동하는지는 확실치 않지만 최소한 다른 리소스에 대해서는 작동한다. – nkorth
코드 파일이'require'에 의해 처음로드되기 전에 업데이트되는 한, 왜 작동하지 않는지 나는 알 수 없습니다. – Xeozim