Отображение результатов уровня в хидденах
Содержание
Механизм
Для отображения результатов игры в хидденах используется механизм передачи значений через опции. В опции эти значения запишет HiddenList если у него будут заполнены поля id пака и id игры, например id пака="pk1" и id игры="pk1.scr01"
Результаты только что пройденной игры
Получить результаты только что пройденной игры (сцены) можно, создав объект типа counter и прописав ему некоторые настройки. Результаты которые мы можем отобразить отображены на скрине.
После прохождения уровня лист запишет в опции вот такие данные. (например)
<pk1 pack_score="7869"> <scr01> kind2 last_star_time0="1" star_time0="1" last_star_combo0="0" last_star_accuracy0="1" star_accuracy0="1" total_score="4366" normal_score="350" bonus_for_speed="2275" bonus_for_time="1741" time_spent="65" record_time_spent="65" record_total_score="4366"/> </scr03> </pk1>
В зависимости от типа игры а у нас их 3 (слова, ассоциации, иконки) есть свой индификатор = "kind"N. kind1 - слова, kind4 - иконка, kind2 - ассоциация.
Настройки каунтера
Что бы counter считал и отобразил результаты ему нужно заполнить поля "игра" и "уровень"
- игра = game."kind"N, где game — идентификатор игры, прописанный в соответствующем хидден листе, N — тип игры (см. HiddenList)
У нас это id игры="pk1.scr01" плюс тип игры через точку. Получаем pk1.scr01.kind2
- уровень = key, где key — ключ, по которому вытаскивается интересующий нас параметр. Список ключей приведен ниже.
Список ключей
total_score — общее количество очков, заработанных за уровень
normal_score — очки, заработанные только за найденные хиддены без учета бонусов
bonus_for_speed — бонусные очки за быстрое нахождение хидденов
bonus_for_time — бонусные очки, если игрок вложился во время, оставшиеся время умножиться на "х"
time_spent — время прохождения игры
Таким образом чтобы например отобразить общие очки, нам каунтеру в поле "игра" указать pk1.scr01.kind2, а в поле "уровень" total_score
Глобальные результаты
В глобальные результаты входят звезды, получаемые в каждой игре, рекорды по очкам для каждой игры и суммарные очки паков.
Звезды
Вычитываются с помощью того же механизма, что и очки, только представляют собой объект типа progress.
Что бы progress' считал и отобразил результаты ему нужно заполнить поля "игра" и "уровень"
- игра = game."kind"N или наш пример pk1.scr01.kind2
- уровень = "ключ"
Список ключей для звезд
Так как у нас этот параметр мы заработали либо нет, то лист у нас пишет либо "1" или "0". А в прогрессе у нас анимация из двух кадров.
star_time0 - лист напишет в этот параметр "1" если мы вложимся в данное нам время
star_combo0 - лист напишет в этот параметр "1" если мы выполним условия Combo(указываются в HiddenList)
star_accuracy0 - лист напишет в этот параметр "1" если мы выполним условия Accuracy(указываются в HiddenList)
Также в опции записываються эти параметры но за последнюю игру, считать их можно добавив приставку last_. Например last_star_time0.
Рекорды по очкам
Сделано для того чтоб например в экране субменю стоял каунтер который показыает максимальное кол-во очко когда либо заработаное за определенный уровень, а в экране со скорами очки за последнюю игру.
Отображает очки каунтер со следующими параметрами:
- игра = game."kind"N у нас это pk1.scr01.kind2
- уровень = "record_total_score"
Суммарные очки пака
Каунтер со следующими параметрами:
- игра = "pack", где pack — идентификатор пака, прописанный в соответствующем HiddenList (наш пример id пака="pk1")
- уровень = "pack_score"