Pull to refresh

Comments 3

А как вы реализуете ачивку, скажем, «20 тапов по экрану за две секунды», если у вас стоит таймер в 6 секунд? Будете использовать какой-то накопитель?
У нас подобные ачивки обрабатываются через всё те же функции bool (*HasAchievementProc)(void), а стейт просто хранится глобально. Функция обработчик смотрит на стейт 1 раз в 6 секунд и проверяет «А выполнилось ли условие?». Сам же стейт может обновляться чаще. Т.е., например, при обработке тапа будет происходить обновление стейта: мы будем добавлять сам факт тапа к списку и снабжать каждый тап таймстэмпом. А раз в 6 секунд проверять условие «20 тампов за 2 секунды» и удалять из списка все тапы, которые старше 6 секунд. Этакий буфер-накопитель с запасом получается.
Я для ачивок использовал Scoreloop с их Awards, довольно хороший сервис, позволяющий хранить их локально, а так же синхронизировать с сервером.
Sign up to leave a comment.

Articles