Большой вопрос про INI файлы
|
|
maxon123 | Дата: Среда, 26 Июня 2013, 16:33 | Сообщение # 1 |
частый гость
Сейчас нет на сайте
| Есть кто-то кто делает/делал игры через GM:S на android. Или те кто хорошо разбирается с сохранениями и загрузкой. Или те кто хотят помочь. Если да, то сильно надеюсь на вашу помощь. Вообщем мне нужно сохранение глобальных переменных на android (можно любым способом, но вроде работает только ini). Суть такая: Устанавливаешь переменную кнопкой x, сохраняешь кнопкой z, а загружает переменную оъект a (событие create)- все объекты в одной комнате. Но по скольку не получилось, сделал простую систему: один объект по-клику открывает, другой- сохраняет. Я перепробовал множество способов, но не один не увенчался успехом. Вот основные: Код //save ( 2 ) ini_open(working_directory + '\scores'+'.ini') ini_write_real('config','global.level',global.level) ini_close(); //load ( 1 ) ini_open(working_directory + '\scores'+'.ini') global.level=ini_read_real('config','global.level',global.level) ini_close(); //Предварительно указав переменные Делал еще вот так Код //save ini_open(working_directory + '\scores'+'.ini') ini_write_real('config','global.level',1) ini_close(); //load ini_open(working_directory + '\scores'+'.ini') global.level=ini_read_real('config','global.level',0) ini_close(); Пробовал тоже самое без working_directory, плюсов. Пробовал не .ini, а .sav и .file. Также пробовал встроенные функции "save" и "load" в GM (main2>game>save) И все выше перечисленные способы вылетают на android на заставке. Все это великолепно работает на Windows, но не работает на android. (1) - вроде работает (по крайней мере не вылетает при загрузке), а (2) к нему как не редактируй, не работает. Не из-за программы точно, все компилярится и запускается на android(но без сохранения)
Нашел в интернете вот этот пример: http://zalil.ru/34606651 (Таблица рекордов) Там все работает и на windows и на android, но разобраться и переделать не смог Также читал в интернете про ini_write_string/ini_read_string и file_exists(), но тоже не смог разобраться
Надеюсь на вашу помощь, не откажусь от легкого примера(но не обязательно )
Сообщение отредактировал maxon123 - Четверг, 27 Июня 2013, 16:19 |
|
| |
YellowAfterlife | Дата: Среда, 26 Июня 2013, 17:59 | Сообщение # 2 |
Сейчас нет на сайте
| Первое, что бросается в глаза, это дописанные пути для INI файлов. GameMaker (по какой-то своей причине) не позволяет манипулировать INI вне папки игры (и даже с дописанными путями для папки игры). То есть использование должно быть как Код ini_open('scores.ini') Вторая проблема в том, что считываемые значения никуда не идут - ini_read_real возвращает полученное значение, но в приведенном коде оно никуда не присвается вовсе. Это можно исправить так: Код global.var = ini_read_real('config', 'global.var', 0) (добавлено присвоение результата в переменную) Если значения все равно не будут считываться, можно попробывать убрать точку из имени переменной для ини, изменив это на "var" или "global_var".
|
|
| |
GameMix | Дата: Четверг, 27 Июня 2013, 07:17 | Сообщение # 3 |
старожил
Сейчас нет на сайте
| Цитата (YellowAfterlife) Если значения все равно не будут считываться Что значит если? Не будут, конечно, т.к. здесь получаются 2 зарезервированных слова GML, разделенных точкой. И var не будет работать.
Steel Standoff - 2D аркада. Мои статьи
|
|
| |
maxon123 | Дата: Четверг, 27 Июня 2013, 16:15 | Сообщение # 4 |
частый гость
Сейчас нет на сайте
| Да, извиняюсь забыл в теме написать про global.var=, но я использовал. И var я тоже не использовал. Исправлю, но все равно не получается.
|
|
| |