2010-08-01 15 views
5

Ich entwickle eine iPhone App mit cocos2d und box2d.In dieser App muss ich einen Timer einstellen. Der Timer zeigt die verbleibende Zeit in der Hand eines Spielers, um das Ziel zu erreichen ...cocos2d: Wie man einen Timer einstellt

Wie kann ich das tun ..... Ich habe eine Szene gezeichnet, aber nicht sicher, wie ich Anfänger bin, wie man Timer hinzufügen. .

danke

Antwort

6

Sie könnten CCTimer verwenden. Genau wie folgt aus:

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

Die myTimedMethod Methode: wird dann jede Sekunde aufgerufen.

+0

Was ist der Vorteil eines 'CCTimer' gegenüber einem' NSTimer'? –

+0

Es verwendet den internen Scheduling-Mechanismus von cocos2d. Wenn ich richtig verstehe, hängt es davon ab, welcher CCDirector-Typ verwendet wird. Die Pro's und Con's (wenn es welche gibt) sind wahrscheinlich in diesem Fall meistens irrelevant. – LearnCocos2D

+8

Ein großer Vorteil ist, dass dieser Timer pausiert, wenn das Spiel pausiert ist, denke ich. –

18

Ich würde einfach einen Selektor mit einem Intervall einplanen. Dies funktioniert in allen CCNode-basierten Klassen.

Zeitplan ausgelöst einen Wähler einmal pro Sekunde:

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

Dieses Verfahren einmal pro Sekunde aufgerufen wird:

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

Parceval ist mit CCTimer ok ist zu, aber Sie sollten die statische Autorelease initializer bevorzugen wie dies:

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

Diese Methode gibt ein Problem in v2.x. Was ist der Ersatz dafür? Obwohl die Headerdatei eine Methode enthält, gibt Xcode einen Fehler aus. –

+0

Das gleiche hier. Es gibt keine Methode timerWithTarget oder initWithTarget mehr (iOS 7.1, Xcode 5.1.1.). –

Verwandte Themen