Производительность достижений OpenFeint - PullRequest
0 голосов
/ 12 июля 2010

Я решил интегрировать OpenFeint в мою новую игру, чтобы иметь достижения и списки лидеров.

Игра динамичная, и я хотел бы, чтобы пользователь был немедленно вознагражден за некоторые успешные результаты, но, как мне кажется, достижения OpenFeint немного вялые, и он показывает визуальное уведомление только при получении подтверждения от сервера.

Можно ли что-то изменить в настройках или немного взломать, чтобы немедленно показывать уведомление, как только оно проверяет только локальную базу данных, если достижение не было разблокировано?

Ответы [ 2 ]

2 голосов
/ 23 января 2012

Не уверен, относится ли это к версии SDK для Android (которая кажется даже медленнее), но мы не могли понять, как сделать это быстрее. Это было так неприемлемо медленно, что мы начали разрабатывать собственную структуру, которая исправляет большинство недостатков открытого финта, а затем и некоторые. Проверьте Рой , он может лучше соответствовать вашим потребностям.

1 голос
/ 12 января 2011

Есть несколько вещей, которые вы можете сделать, чтобы более строго контролировать время этих уведомлений.Я объясню один подход, и вы можете использовать его в качестве отправной точки для дальнейшего изучения самостоятельно.Эти предложения относятся конкретно к приложениям для iOS.Одно предостережение заключается в том, что эти предложения относятся к внутренним API в OFSDK 2.8 для iOS и обычно не рекомендуются для высокоуровневого использования и могут быть изменены в будущих версиях.

Первое, что я рекомендую, - это создать пример приложения сваш собственный ключ продукта.Используйте стандартный пример приложения, чтобы поэкспериментировать, прежде чем применять результат к своему собственному коду.

Вы получите самый быстрый ответ, отделив всплывающий пользовательский интерфейс уведомлений от процесса отправки достижения.Таким образом, вам не нужно беспокоиться о том, что вы будете зациклены на логике, чтобы решить, будет ли отправка отправлена ​​только в локальную базу данных или выполняется полное подтверждение асинхронной сетевой транзакции.

См. Объявление"showAchievementNotice" в "OFNotification.h".Выполнив поиск в примере приложения, вы увидите, что это внутренний API-интерфейс, используемый для отображения всплывающего окна достижений при его достижении.Это фактически не представляет достижение.Вы можете вызвать этот метод напрямую, так как он вызывается из «OFAchievementService.mm», чтобы напрямую управлять появлением сообщения.Затем вы можете использовать следующую статью, чтобы отключить вызов всплывающего окна при фактической отправке:

http://support.openfeint.com/dev/notification-pop-ups-in-ios/

Это дает вам полную свободу вызывать отправку позже, если вы отслеживаетенужно сделать так.Например, вы можете локально сериализовать флаг, чтобы позаботиться о фактической отправке либо после завершения уровня, либо при следующем запуске приложения.Не забывайте, что пользователь может выйти из игры, не пройдя чистый уровень.

...