Есть ли способ, позволяющий ограничить продолжительность жестов пользователя? Например, пользователь может перетащить спрайт, но с начала cctouch он может длиться только 3 секунды. После продолжительности приложения будут автоматически запускать метод конца cctouch.Как ограничить длительность касания?
1
A
ответ
2
Я бы рекомендовал планировать таймер с использованием блоков. Избегайте использования NSTimer с Cocos2D, так как это не позволяет использовать встроенную функцию паузы/возобновления.
Schedule следующим образом:
- (BOOL)ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event
{
[[self scheduler] scheduleBlockForKey:@"menu" target:self interval:3.0f repeat:0 delay:0 paused:NO block:^(ccTime dt)
{
// perform end of touch actions here
}];
}
Также убедитесь, что запланированный блок, если пользователь делает то, что вы хотите, прежде чем называется таймер (ccTouchEnded/ccTouchCancelled вероятно):
- (void)ccTouchEnded:(UITouch *)touch withEvent:(UIEvent *)event
{
[[self scheduler] unscheduleBlockForKey:@"menu" target:self];
}
2
Да, это простая стратегия для достижения этой цели. Вы можете запустить таймер, когда пользователь начнет понимать жест, и когда таймер ударит, остановите его.
-(void) timerDidTick:(NSTimer *)theTimer{
cpMouseRelease(mouse);
}
- (BOOL)ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event {
NSTimer *aTimer = [NSTimer timerWithTimeInterval:3.0 target:self selector:@selector(timerDidTick:) userInfo:nil repeats:NO] ;
[[NSRunLoop mainRunLoop] addTimer:aTimer forMode:NSRunLoopCommonModes];
CGPoint touchLocation = [self convertTouchToNodeSpace:touch];
cpMouseGrab(mouse, touchLocation, false);
...
}
Смежные вопросы
- 1. Как узнать длительность касания в cocos2d?
- 2. Попытка измерить длительность касания в android
- 3. Как ограничить события касания только одним контроллером?
- 4. как записывать видео длительность программно?
- 5. Как ограничить эффекты onScroll() одним вызовом метода на событие касания
- 6. Как ограничить движение касания для android на Unity
- 7. Длительность контроля сеанса PHP
- 8. Как получить длительность видеоролика
- 9. Как форматировать Длительность
- 10. Как определить длительность медиафайлов?
- 11. Как показать Длительность песни
- 12. Android Analytics v4: 0 Длительность сеанса Длительность
- 13. Ограничить событие касания SlidingPaneLayout до самого левого края экрана
- 14. Найти длительность
- 15. Как умножить длительность на целое?
- 16. Как показать длительность использования Groovy?
- 17. Как получить Длительность от jquerymobile
- 18. Как исправить длительность видеозаписи видеозаписи
- 19. Как добавить длительность частичных записей
- 20. Как сохранить длительность пакетов SSIS
- 21. Как разобрать dHHmm на длительность?
- 22. Обнаружение касания на изображении
- 23. Javascript - точки касания и касания
- 24. Изменения события касания касания касания касаются силы или радиуса
- 25. ClosedXML отрицательная длительность
- 26. Как отслеживать вектор касания?
- 27. Как имитировать событие касания?
- 28. Как лечить касания отдельно
- 29. Как отключить событие касания?
- 30. Как отключить обнаружение касания?
Хорошего ответа , Я новичок в Cocos, и я не знал этого о NSTimers. благодаря –