我正在使用 GameMaker 。我正在处理的游戏需要稍后更新。我如何创建更新程序,以便人们不必下载更新版本。我想它,所以玩它的人可以按下按钮和游戏更新。
答案 0 :(得分:2)
我做到了。
我在服务器上创建了一个文件,基本上它可以是每个服务器。在这个文件中我说:
[Version]
Version = 1010
所以最新版本是1.0.1.0。有一个函数GM_version来检查游戏的当前版本,但不会返回1.0.0.1,我不知道他们为什么这样做。 所以,为了解决这个问题,这是我的创建事件:
//Re-order version and delete points
Version3 = string_replace(GM_version,'.','')
Point1 = string_pos('.',version3)
Version2 = string_delete(version3,point1,1)
Point2 = string_pos('.',version2)
Version1 = string_delete(version2,point2,1)
String1 = string_copy(version1,point1,point2 - point1)
Version0 = string_delete(version1,point1,point2 - point1)
Version_local = version0 + string1
//Delete old file and get serverfile
Version_online = 0
Got = 0
file_delete("your file")
File = http_get_file("your serverfile","your file")
在异步HTTP事件中是这段代码:
if ds_map_find_value(async_load,"id") == file {
if ds_map_find_value(async_load,"status") == 0 {
ini_open("your file")
Version_online = ini_read_string("version","version",version_local)
ini_close()
Got = 1
}
}
最后,在步骤事件中:
if got == 1 {
if version_online > version_local {
//your code when there's an update, e.g. open your homepage.
}
Got = 0
}
希望有所帮助!
答案 1 :(得分:0)
简短的回答:你不能在纯GM中做到这一点,最简单的解决方案是用另一种语言来做,然后用GM推出它。
<小时/> 您无法更新游戏的一部分,因为它将被编译为单个可执行文件。用户必须下载游戏的整个.exe。最好的办法是创建另一个独立程序(使用GM或其他软件/语言)。您始终可以通过游戏中的按钮单击启动该更新程序。您可能会发现使用C,C ++或C#创建自己的更新程序的开源代码。
如果我是你,我只需要一个小按钮&#34;检查更新&#34;在游戏中,它会导致PHP网站在地址中显示当前版本(例如www.mygamesite/update?v=1.2345
)。然后你让网站比较网址中传递的版本,以显示&#34;你的游戏是最新的&#34;或者&#34;下载最新版本&#34;改变清单。