views:

116

answers:

2

Hi, 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

+1  A: 

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.

parceval
What is the advantage of a `CCTimer` over an `NSTimer`?
Jacob Relkin
It uses cocos2d's internal scheduling mechanism. If I understand correctly it depends on which CCDirector type is used. The pro's and con's (if there are any) are probably mostly irrelevant in this case.
GamingHorror
+1  A: 

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]];
GamingHorror