Gamecenter — различия между версиями
Igood (обсуждение | вклад) (→Очки) |
Igood (обсуждение | вклад) (→Очки) |
||
Строка 22: | Строка 22: | ||
На геймцентр можно отправлять очки и достижения. Для того, чтобы к объекту gamecenter был доступ, его лучше размещать на глобальном экране. Рассмотрим на примере отправку очков и достижений. | На геймцентр можно отправлять очки и достижения. Для того, чтобы к объекту gamecenter был доступ, его лучше размещать на глобальном экране. Рассмотрим на примере отправку очков и достижений. | ||
− | === Очки === | + | === Очки и Достижения === |
Для того, чтобы объект gamecenter мог обмениваться данными с геймцентром, он должен сначала авторизироваться. Проводить авторизацию нужно на экране, предшествующему экрану, где нужно отправлять очки. Для этого можно сделать отдельную машину. | Для того, чтобы объект gamecenter мог обмениваться данными с геймцентром, он должен сначала авторизироваться. Проводить авторизацию нужно на экране, предшествующему экрану, где нужно отправлять очки. Для этого можно сделать отдельную машину. |
Версия 10:28, 20 февраля 2014
Объект используется для отправки данных на gamecenter. Отправлять можно набранные очки (score) или достижения (achievement).
Содержание
Параметры и модификаторы
- положение - определяет положение объекта на сцене.
- размер - определяет размер объекта на сцене.
- achievement - достижение, которое будем отправлять.
- achievement percent - на сколько процентов завершено достижение.
- score - очки, которые мы будем отправлять.
- score category - категория, в которую мы отправляем очки (ссылка на leaderboard).
- состояние - состояние, которое мы передаем объекту gamecenter
authenticate - состояние, по которому начинается авторизация мобильного устройства на геймцентре. score - состояние, по которому отправляются очки. achievement - состояние, по которому отправляются достижения. score_show - состояние, по которому можно посмотреть очки на геймцентре. achievements_show - состояние, по которому можно посмотреть достижения.
Пример применения
На геймцентр можно отправлять очки и достижения. Для того, чтобы к объекту gamecenter был доступ, его лучше размещать на глобальном экране. Рассмотрим на примере отправку очков и достижений.
Очки и Достижения
Для того, чтобы объект gamecenter мог обмениваться данными с геймцентром, он должен сначала авторизироваться. Проводить авторизацию нужно на экране, предшествующему экрану, где нужно отправлять очки. Для этого можно сделать отдельную машину.
Все очки, лидер бордеры, ачивки прописываются в обеъкте Gamecenter, каждая ачивка или score добавляется дополнительным параметром.
Для каждой ачивки или score нужно прописать ее внутренний id и заполнить поля - внешние ссылки для различных платформ iOS, Amazon и т.д. Таким образом у нас заранее прописаны все ачивки и очки, и для их отправки мы выбираем их по внутреннему id.
Далее когда у нам нужно отправить какое то достижение мы объекту в параметре achievement передаем внутренний id ачивки которую нужно отправить и передаем состояние achievement. См. скрин ниже.
Для того чтоб авивка выполнялась не полностью, а выполнился ее определенный процент, то есть если мы хотим получить ачивку в несколько этапов, перед отправкой мы должны указать процент отправки. По умолчанию стоит 100%.
Чтобы посмотреть очки мы передаем объекту gamecenter состояние score_show. Для просмотра достижений нужно передать объекту gamecenter состояние achievements_show.
Отличительной особенностью достижений является то, что при успешной авторизации в опции записывается параметр, отвечающий за то или иное достижение. Поэтому эту информацию всегда можно считать из опций и использовать в игре. Выглядит она в опциях как параметр , значение которого = 1.
Дополнительные параметры
авторизация: изменить состояние объекта - При авторизации пользователя перевести объект в новое состояние.
- объект - объект - состояние которого меняем.
- состояние - овое состояние для объекта из предыдущего поля.
ошибка автор: изменить состояние объекта - При ошибке авторизации пользователя перевести объект в новое состояние.
- объект - объект - состояние которого меняем.
- состояние - овое состояние для объекта из предыдущего поля.
Leaderboard - категория - Дополнительный параметр для отправки Score
- id достиженя
- IOS id достиженя
- Amazon id достиженя
- IGoogle id достиженя
Achievement - достижение - Дополнительный параметр для отправки Achievement
- id достиженя
- IOS id достиженя
- Amazon id достиженя
- IGoogle id достиженя
Примечания и дополнения
Для того, чтобы понимать что происходит с объектом gamecenter по логу viewer, приведен ряд значений, которые может получать GGamecenter (state=n, где n - номер состояния):
n состояние пояснение 0 ST_IDLE=0, // состояние простоя 1 ST_NOT_SUPPORTED, // геймцентр не поддерживается на устройстве 2 ST_AUTHENTICATE, // попытаться авторизоваться 3 ST_AUTHENTICATION_ERROR, // ошибка авторизации 4 ST_AUTHENTICATED, // успешно авторизовались 5 ST_REPORT_ACHIEVEMENT, // запостить ачивку 6 ST_ACHIEVEMENT_SUCCESS, // ачивка успешно отправлена 7 ST_ACHIEVEMENT_FAILED, // не удалось отправить ачивку 8 ST_SHOW_ACHIEVEMENTS, // показать стандартный гуи с ачивками 9 ST_REPORT_SCORE, // отправить очки 10 ST_SCORE_SUCCESS, // очки успешно отправлены 11 ST_SCORE_FAILED, // не удалось отправить очки 12 ST_SHOW_LEADERBOARDS, // показать стандартный гуи с очками
Например, GGameCenter::state old_state = 1, state = 5,
где:
old_state - предыдущее состояние,
state - текущее состояние.
Проверка получения achievement
Есть возможность проверять из редактора (на компьютере) приходят ли achievements - для этого в файлике Viewer_Log нужно найти строчку:
GGameCenter::reportAchievement achievement = %s, percent = %d
где,
%s - имя ачивмента (ссылочка которую дают маркетологи)
%d - число процента
Отключение неиспользуемого функционала
Если в проекте не используются лидерборды, ачивки, синхронизацию между устройствами, то их можно принудительно отключить вписав в app.icf или platform.icf следующие строки:
[GameCenter] Achievements=1 Leaderboards=1 Whispersync=0
1 - используется, 0 - не используется
по умолчанию:
Achievements=1
Leaderboards=1
Whispersync=0