Как обнаружить ядро ​​анимации пропущено / не удалось запустить - PullRequest
4 голосов
/ 10 июня 2011

В моей игре у меня есть серия основных анимаций, запускаемых одна за другой в течение доли секунды. В конце анимации вызывается метод для запуска (animationDidStop :) некоторой важной логики.

Обычно это работает хорошо. Однако иногда, особенно на более медленном устройстве, таком как iPhone 3G или iPhone 2, одна из анимаций пропускается (или не запускается) из-за проблем с синхронизацией (слишком много работы и процессор не может перехватить). Я в порядке с пропуском анимации, но проблема в том, что мой метод также не вызывается. Будет хорошо, если такой пропуск будет обнаружен.

Кто-нибудь знает, как обнаружить случай, когда анимация ядра пропускается / не запускается?

спасибо.

Ответы [ 2 ]

1 голос
/ 29 сентября 2011

Для этого нужно использовать 2 вещи

- NSTimer * таймер

- BOOL isAnimationCompleted

1) Запустить таймер "таймер" того же временикак время анимации.

2) установить "isAnimationCompleted = TRUE" в (animationDidStop :) метод

3) после того, как отметки таймера будут проверяться для переменной isAnimationCompleted

if (! IsAnimationCompleted)

[self callMethodMannually];

0 голосов
/ 12 июля 2011

Я уверен, что есть лучший вариант, который я не вижу, но вы всегда можете сохранить состояние в некоторой переменной, а затем использовать NSTimer для запуска задачи, которая позже проверяет это состояние.

Надеюсь, кто-то еще придумает что-то менее удачное для вас!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...