Skip to content

Commit c4bc3e0

Browse files
author
AT2014
committed
Added reschedule:interval method to CCNode.
Added reschedule:interval method to CCNode.m. When you call the reschedule:interval: method using a selector that is already scheduled this method will update the interval. It may be useful to use this method at certain times rather than using the schedule:interval: method (which will unschedule and then reschedule an already scheduled method). If you call reschedule:interval method and pass in a selector that was never scheduled, this method will schedule the selector for the first time.
1 parent 09ee27d commit c4bc3e0

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

cocos2d/CCNode.m

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1230,6 +1230,32 @@ -(CCTimer *) schedule:(SEL)selector interval:(CCTime)interval
12301230
return [self schedule:selector interval:interval repeat:CCTimerRepeatForever delay:interval];
12311231
}
12321232

1233+
-(CCTimer*)reschedule:(SEL)selector interval:(CCTime)interval
1234+
{
1235+
NSString *selectorName = NSStringFromSelector(selector);
1236+
1237+
CCTimer *currentTimerForSelector = nil;
1238+
1239+
for (CCTimer *timer in [_scheduler timersForTarget:self])
1240+
{
1241+
if([selectorName isEqual:timer.userData])
1242+
{
1243+
CCLOG(@"%@ was already scheduled on %@. Updating interval from %f to %f",NSStringFromSelector(selector),self,timer.repeatInterval,interval);
1244+
timer.repeatInterval = interval;
1245+
currentTimerForSelector = timer;
1246+
break;
1247+
}
1248+
}
1249+
1250+
if (currentTimerForSelector == nil)
1251+
{
1252+
CCLOG(@"%@ was never scheduled. Scheduling for the first time.",selectorName);
1253+
currentTimerForSelector = [self schedule:selector interval:interval];
1254+
}
1255+
1256+
return currentTimerForSelector;
1257+
}
1258+
12331259
-(BOOL)unschedule_private:(SEL)selector
12341260
{
12351261
NSString *selectorName = NSStringFromSelector(selector);

0 commit comments

Comments
 (0)