Обнаружение касания без обработки событий
Я использую cocos2d. Я хотел бы иметь возможность определять, касался ли экран в определенный момент, то есть вместо того, чтобы перехватывать событие, когда оно происходит, я хочу обнаруживать присутствие касания в определенный момент.
Причина в том, что я анимирую спрайты и хочу определить, должен ли спрайт продолжать двигаться - если экран все еще касается. Я не могу использовать ccTouchesEnded, потому что каждый раз, когда запускается анимация, я устанавливаю для isTouchEnabled значение false, потому что я также хочу, чтобы пользователь мог быстро нажимать на экран, чтобы перемещать спрайт, но если они будут нажиматься слишком быстро, это будет влиять на положение спрайта. во время процесса анимации, который, как я обнаружил, странным образом портит положение моих объектов.
Это возможно?
1 ответ
Похоже, что не существует какого-либо общедоступного API для обнаружения касаний, кроме включения и получения этих событий в главном цикле выполнения пользовательского интерфейса.
Вы можете продолжать обрабатывать события и устанавливать состояние, оставленное последним событием касания в объекте модели или глобальных переменных. Затем вы можете в любое время опросить собственное внутреннее состояние вашего приложения.
Вместо того, чтобы отключать касания, вы можете просто сделать так, чтобы ваш сенсорный обработчик не делал ненужные вещи, если отметка времени события слишком близка к некоторому времени начала анимации.