Я использую GameMaker. Игра, над которой я работаю, должна быть обновлена позже. Как создать обновление, чтобы люди не могли загрузить обновленную версию. Мне бы хотелось, чтобы человек, играющий в нее, мог нажать кнопку и обновить игру.Как сделать обновление для GameMaker Game
ответ
Краткий ответ: вы не можете сделать это в чистом GM, а самым простым решением будет сделать это на другом языке и просто запустить его с GM.
Вы не можете обновить часть игры, поскольку она будет скомпилирована для одного исполняемого файла. Пользователям придется загрузить весь .exe вашей игры. Лучше всего создать еще одну автономную программу (с GM или другим программным обеспечением/языком). Вы всегда можете запустить эту программу обновления с помощью нажатия кнопки в вашей игре. Вы можете найти открытый исходный код, чтобы сделать свой собственный обновитель в C, C++ или C#.
Если бы я был вами, я бы просто сделал небольшую кнопку «проверить для обновления» в игре, и это приведет к созданию веб-сайта PHP с текущей версией по адресу (например, www.mygamesite/update?v=1.2345
). Затем вы сравните версию, указанную в URL, чтобы показать, что «ваша игра обновлена» или «загрузить последнюю версию» с помощью списка изменений.
Я сделал это.
Я создал файл на сервере, в основном это может быть каждый сервер. В этом файле я сказал:
[Version]
Version = 1010
Таким образом, самая новая версия 1.0.1.0. Существует функция GM_version для проверки текущей версии игры, но ot вернет 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 Event этот код:
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. Gamemaker game freezing computer
- 2. Как закрыть игру gamemaker?
- 3. Код экспорта Gamemaker для Gource
- 4. scale2x в GameMaker: Studio
- 5. сделать правильный URI для WP Game Library
- 6. Установить GameMaker для использования оконной зоны
- 7. Как оживить спрайты в Gamemaker
- 8. Как сменить спрайт объектов в gamemaker на основе его направления на перемещение в Game Maker?
- 9. GameMaker 2D Visibility
- 10. Gamemaker Масштабирование и перетаскивание
- 11. Limit drag in gamemaker
- 12. Прокрутка экрана вправо GameMaker
- 13. Ожидание в GameMaker: Studio
- 14. GameMaker: save highscore
- 15. Как сделать анимацию прыжка в Game Maker?
- 16. Как сделать Java Canvas Game Loop
- 17. Неверный результат для проверки ввода в GameMaker
- 18. Game-Development: Как сделать мой spritegame динамическим для разрешений?
- 19. XNA Game Studio 4.0 Обновление не работает
- 20. Как сделать пакетное обновление?
- 21. Как сделать двойное обновление
- 22. Как сделать обновление combobox?
- 23. Gamemaker Game EXE-файл не загружается (игра сделана 11 лет назад)
- 24. Как сделать обновление файла?
- 25. Как сделать каскадное обновление?
- 26. Gamemaker Studio Android открыть браузер
- 27. Game Maker Студия: Android Ошибка при компиляции
- 28. Как сделать пакетное обновление для PostgreSQL
- 29. Как сделать условное обновление для компонента
- 30. Как сделать инкрементное обновление для PDF