루프에 몇 초의 지연 (예 : A 루프)을 추가하는 방법이 있습니까? 즉, 각 반복 후에 짧은 지연을 원합니다.루프 내에서 지연 추가
나는 cocos2d를 사용하여 지연을 사용하여 선택기를 예약 할 수 있음을 알고 있습니다. 그러나 나는 이것이이 경우에 어떻게 사용될 수 있을지 확신하지 못한다.
또한 수면은 비용이 많이 들고 권장하지도 않습니다.
제안 사항?
루프에 몇 초의 지연 (예 : A 루프)을 추가하는 방법이 있습니까? 즉, 각 반복 후에 짧은 지연을 원합니다.루프 내에서 지연 추가
나는 cocos2d를 사용하여 지연을 사용하여 선택기를 예약 할 수 있음을 알고 있습니다. 그러나 나는 이것이이 경우에 어떻게 사용될 수 있을지 확신하지 못한다.
또한 수면은 비용이 많이 들고 권장하지도 않습니다.
제안 사항?
당신은 C의 절전 기능을 사용할 수 있습니다
sleep(seconds);
을하지만 당신은 아마도 UITimer
, 또는 블록 기반 performSelector:withObject:afterDelay:
방법을 볼 수 있었다.
. 게임을 일시 중지 할 가능성이있는 경우 문제가 발생합니다.
반복 사이에 고정 지연을 사용하여 일부 동작을 반복하려면 scribe : interval : 메서드를 필요한 지연과 함께 자유롭게 사용할 수 있습니다.
[self schedule:@selector(methodToScedule) interval:yourDelay]
임의 지연을 수행해야하는 경우 cocos2d 동작을 사용할 수 있습니다. 예를 들어
- (void) sceduleMethod
{
// do anything you want
ccTime randomDuration = // make your random duration
id delayAction = [CCDelayTime actionWithDuration: randomDuration];
id callbackAction = [CCCallFunc actionWithTarget:self selector:@selector(scheduleMethod)];
id sequence = [CCSequenece actionOne: delayAction actionTwo: callbackAction];
[self runAction: sequence];
}
이 경우에는 한 번만 호출해야합니다. 그러면 주어진 지연으로 스스로를 호출합니다.
도움 주셔서 감사합니다. – plawres
기본 (UI) 스레드에서 지연되지 않았 으면 좋겠다. 그렇지 않으면 사용자가이를 인식하고 만족하지 않을 것입니다. –
확실치 않지만, 아마도'sleep()'이 여기에서 유용 할 수 있습니다. – SmartTree