2

私はcocos2dを使用して、各レベルがまったく同じものであるゲームの4つの「レベル」を実行する小さなアプリを持っています。第4レベルを実行した後、ゲーム終了シーンを表示したいと思います。私がこれを処理することができた唯一の方法は、各レベルに1つずつ、4つのメソッドを作成することです。キモい。

私はcocos2dと基本的なCocoaフレームワークの両方を使用してこの状況に何度か遭遇しました。では、メソッドが呼び出された回数を数えることはできますか?

4

2 に答える 2

3

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

コメントでコードをフォーマットできなかったので、さらに詳しく説明します。

ヘッダーファイルで、インスタンス変数として整数を追加します。

@interface MyObject : NSObject { 
   UIInteger myCounter; 
} 

そして、あなたのメソッドで、それをインクリメントします:

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

@end 
于 2009-07-27T20:09:04.557 に答える
2

あなたの方法がそれを行うための最良の方法であるかどうか、または私の方法が最善であるかどうかはわかりませんが、Nathanielが言ったように、あなたは単純に整数を定義してカウントを保持します@interface

@interface MyClass : NSObject {
    int callCount;
}

次に、メソッドは次のようにしてこれをインクリメントできます。

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

callCountただし、コンストラクターまたは同等のもので、変数を0に初期化するようにしてくださいviewDidLoad。次に、カウントをチェックするコードで、次のことを確認できます。

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

繰り返しになりますが、私はあなたが単にこのようなことをすることができると思います:

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

[self theEndScene];

あなたのゲームロジックがどのように機能するかはわかりませんが、それは機能すると思います。

あなたの質問を誤解してすみません。

于 2009-07-27T20:23:36.273 に答える