Использование Progress в игре
Progress в игре
Объект типа Progress предназначен для отображения ачивментов(звед) Сейчас используеться в пазлах и тревеле.
В пазлах объектом который записывает значения в опции является сам пазл Puzzle. В тревеле в опции записывает HiddenList Прогрессу для отображения остаеться лишь правильно считать данные из опций.
Пример из игры Тревел
Звезды в игре даются за общую точность кликов в сцене, если прошли уровень за меньшее кол-во времени, и за "n" точных клипов подряд. Для них есть отдельные ключи. Все эти данные подсчитывает и записывает в опции ХиденЛист. Выглядят они примерно так.
<pk1> <scr03> <kind1 last_star_time0="1" star_time0="1" last_star_combo0="0" star_combo0="0" last_star_accuracy0="1" star_accuracy0="1"/> </scr03> </pk1>
Эти данные означают что мы играли в игру из пака pk1 экран scr03 тип игры kind1. Значение "0" означает что мы не получили звезду и у нас будет показываться нулевой фрейм из анимации, значение "1" будет показываться след фрейм. Так как у нас в игре либо получил звезду либо нет, то анимация будет содержать всего два фрейма.
Для отображения этих данных в Progress мы должны указать в поле "игра"=pk1.scr03.kind1 то есть показать откуда мы будем читать данные. А в поле "уровень" указать сами данные это: star_combo, star_accuracy, star_time.
В этом случае если мы получим зведу то она ни куда не денется. Если этим ключам указать префикс last, то если у нас была уже звезда но при повторной игре мы ее не получили она пропадет.
Также в опции записываются данные:
<last_game star_time0="1" star_combo0="0" star_accuracy0="1"/>
Их удобно использовать в общем окне результатов, для того чтоб не инитить объекту progress в какой уровень мы играли в поле "игра" указываем last_game, поле уровень star_time, star_combo, star_accuracy.
Пример из пазлов
Пример из Пазлов.
Звезды в пазлах даются в зависимости от количества сделаных ходов за одну игру. После прохождения уровня пазл запишет в опции:
<pk7> <pz01 lv1="2"/> </pk7>
Видим что мы играли пак №7 пазл №1 уровень = 0. Для этого мы передаем пазлу значение pk7.pz01 в параметр "game" и "level" значение lv0. Эти значения могут быть произвольными, главное потом их правильно указать прогрессу. Если у нас есть к примеру 4 уровня то мы можем использовать один прогресс а в его количестве указать 4ре тогда.
В редактрое это будет выглядеть так а в игре так .
При этом каждая звезда будет считывать свое сначение из опций. Первая pk7.lv0, вторая pk7.lv1, третья pk7.lv2 и т.д. В нашем случае это pk1.pz01.lv1 означает что второй звезде из прогресса присвоится 3й фрейм из анимации которая указана у неее в ресурсах. В редакторе в ключе левел мы указываем только "lv" без 0,1,3... прогресс сам считает для каждого свое значение.
Ключи game.level могут быть произвольными.