cocos2d: How to set a timer

14,856

Solution 1

You could use CCTimer. Just like this:

float delay = 1.0; // Number of seconds between each call of myTimedMethod:
CCTimer *myTimer = [[CCTimer alloc] initWithTarget:self 
                             selector:@selector(myTimedMethod:) interval:delay]];

The method myTimedMethod: will get called then each second.

Solution 2

I would simply schedule a selector with an interval. This works in all CCNode based classes.

Schedule a selector triggered once per second:

[self schedule:@selector(timerUpdate:) interval:1];

This method gets called once per second:

-(void) timerUpdate:(ccTime)delta
{
  numSeconds++;
  // update timer here, using numSeconds
}

Parceval's method using CCTimer is ok too but you should prefer the static autorelease initializer like this:

CCTimer *myTimer = [CCTimer timerWithTarget:self
                                   selector:@selector(myTimedMethod:)
                                   interval:delay]];
Share:
14,856
Rony
Author by

Rony

Updated on June 04, 2022

Comments

  • Rony
    Rony almost 2 years

    I am developing an iPhone app using cocos2d and box2d.In this app i require to set a timer. The timer will show the remaining time in hand of an player to reach destination...

    how can i do that.....i have drawn a scene but no sure as i am beginner how to add timer..

    thanks