2009-07-27 17 views
2

私はcocos2dを使って、それぞれのレベルがまったく同じ4つの「レベル」のゲームを実行する小さなアプリを持っています。 4番目のレベルが実行された後、私は終了ゲームのシーンを表示したい。私がこれを処理できる唯一の方法は、各レベルごとに1つずつ、4つの方法を作成することです。キモい。メソッドがCocoa-Touchで呼び出された回数を数えますか?

私は、この状況をcocos2dと基本的なCocoaフレームワークの両方を使って何回も実行しました。それで、メソッドが何回呼び出されたのかを数えることは可能ですか?

答えて

3

メソッドが呼び出されるたびにインスタンス変数の整数をインクリメントできますか?

私はそう多くを言えば、コメントでコードをフォーマットすることができませんでした:あなたのヘッダファイルで

インスタンス変数として整数を追加:あなたの方法で

@interface MyObject : NSObject { 
    UIInteger myCounter; 
} 

そしてを、それをインクリメント:

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

@end 
+0

どうすればよいですか? – Evelyn

+0

Blaenkは以下のようにカウンタをどこかで初期化してください。 –

+0

あなたはちょうど私の人生を解決しました。 – Evelyn

2

あなたの方法でそれを行うための最善の方法がある場合、私は知らない、または鉱山がある場合は、しかし、ナサニエルが言ったように、あなたは、単にあなたので数を保持する整数を定義します:

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

を、あなたのコンストラクタまたはviewDidLoadのと同等に、しかし0にcallCount変数を初期化していることを確認してください:

@interface MyClass : NSObject { 
    int callCount; 
} 

その後方法が行うことで、これをインクリメントすることができます。そして、あなたがチェックすることができ、カウントチェックするコードに:、

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

[self theEndScene]; 

私はあなたのゲームロジックがどのように動作するか分からない:

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

をもう一度を、私はあなたは、単にこのような何かを行うことができますねしかし私はそれがうまくいくと思います。

申し訳ありませんが、私はあなたの質問を誤解している場合。

+0

うわー!私はこの間暗闇の中に住んでいました!数週間前にこの質問をしてください。ありがとう。 :) – Evelyn

関連する問題