2010-08-01 18 views
5

Estoy desarrollando una aplicación para iPhone usando cocos2d y box2d.En esta aplicación necesito configurar un temporizador. El temporizador mostrará el tiempo restante en la mano de un jugador para llegar al destino ...cocos2d: Cómo configurar un temporizador

cómo puedo hacer eso ..... dibujé una escena pero no estoy seguro como soy principiante de cómo agregar el temporizador.

gracias

Respuesta

6

Puede usar CCTimer. Al igual que este :

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

El myTimedMethod método: se llamará a continuación, cada segundo.

+0

¿Cuál es la ventaja de un 'CCTimer' sobre un' NSTimer'? –

+0

Utiliza el mecanismo de programación interno de cocos2d. Si lo entiendo correctamente, depende del tipo de CCDirector que se use. Los pro y los con (si hay alguno) son probablemente irrelevantes en este caso. – LearnCocos2D

+8

Una gran ventaja es que este temporizador se detiene cuando el juego está en pausa, creo. –

18

Simplemente programaría un selector con un intervalo. Esto funciona en todas las clases basadas en CCNode.

Horario un selector dispara una vez por segundo:

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

Este método se llama una vez por segundo:

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

método de Parceval usando CCTimer está bien también, pero debe preferir el inicializador autorelease estático como esto:

CCTimer *myTimer = [CCTimer timerWithTarget:self 
            selector:@selector(myTimedMethod:) 
            interval:delay]]; 
+0

Este método está generando problemas en v2.x. ¿Cuál es el reemplazo de esto? Aunque el archivo de encabezado contiene el método pero Xcode está dando error. –

+0

Lo mismo aquí. Ya no hay un método timerWithTarget o initWithTarget (iOS 7.1, Xcode 5.1.1). –

Cuestiones relacionadas