2

我有一个小应用程序,它使用 cocos2d 来运行游戏的四个“关卡”,其中每个关卡都完全相同。第四关运行后,我想显示一个结束游戏的场景。我能够处理这个问题的唯一方法是制作四种方法,每个级别一个。总的。

我已经多次使用 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 回答