2009-07-27 10 views
2

Ich habe eine kleine App, die cocos2d verwendet, um durch vier "Ebenen" eines Spiels zu laufen, in dem jede Ebene genau das gleiche ist. Nachdem die vierte Ebene ausgeführt wurde, möchte ich eine Endspielszene anzeigen. Der einzige Weg, wie ich damit umgehen konnte, ist, vier Methoden zu machen, eine für jede Ebene. Brutto.Wie oft wird eine Methode in Cocoa-Touch aufgerufen?

Ich habe diese Situation mehrmals mit cocos2d und nur das grundlegende Cocoa-Framework. Kann ich also zählen, wie oft eine Methode aufgerufen wird?

Antwort

3

Können Sie bei jedem Aufruf der Methode eine Instanzvariable integer inkrementieren?

konnte ich den Code in einem Kommentar nicht formatiert werden, so dass mehr auslegen:

In Ihrer Header-Datei, fügen Sie eine ganze Zahl als Instanzvariable:

@interface MyObject : NSObject { 
    UIInteger myCounter; 
} 

Und dann in Ihrer Methode, erhöht es:

@implementation MyObject 
    - (void)myMethod { 
     myCounter++; 
     //Do other method stuff here 
     if (myCounter>3){ 
      [self showEndGameScene]; 
     } 
    } 

@end 
+0

Wie mache ich das? – Evelyn

+0

Wie Blaenk unten sagte, stellen Sie sicher, dass Sie den Zähler irgendwo initialisieren. –

+0

Sie haben gerade mein Leben gelöst. – Evelyn

2

ich weiß nicht, ob Sie Ihren Weg der beste Weg, es zu tun ist, oder wenn mir ist, aber wie Nathaniel sagte, würden Sie einfach eine ganze Zahl definieren die Zählung in Ihremzu halten:

@interface MyClass : NSObject { 
    int callCount; 
} 

Dann kann das Verfahren diese erhöhen, indem Sie:

- (void) theLevelMethod { 
    callCount++; 
    // some code 
} 

Stellen Sie sicher, dass die callCount Variable auf 0 aber in Ihrem Konstruktor oder dem Äquivalent von viewDidLoad initialisieren. Dann in dem Code, der die Zählung überprüft können Sie überprüfen:

if (callCount == 4) { 
    // do something, I guess end scene 
} 

Dann wieder, ich denke, man einfach etwas tun kann:

for (int i = 0; i < 4; i++) { 
    [self theLevelMethod]; 
} 

[self theEndScene]; 

Ich weiß nicht, wie Sie Ihr Spiel Logik funktioniert, aber ich denke, das würde funktionieren.

Entschuldigung, wenn ich Ihre Frage missverstanden habe.

+0

Wow! Ich habe die ganze Zeit im Dunkeln gelebt! Ich hätte diese Frage schon vor Wochen stellen sollen. Vielen Dank. :) – Evelyn

Verwandte Themen