我有一个小应用程序,它使用 cocos2d 来运行游戏的四个“关卡”,其中每个关卡都完全相同。第四关运行后,我想显示一个结束游戏的场景。我能够处理这个问题的唯一方法是制作四种方法,每个级别一个。总的。
我已经多次使用 cocos2d 和只使用基本的 Cocoa 框架遇到这种情况。那么我可以计算一个方法被调用的次数吗?
我有一个小应用程序,它使用 cocos2d 来运行游戏的四个“关卡”,其中每个关卡都完全相同。第四关运行后,我想显示一个结束游戏的场景。我能够处理这个问题的唯一方法是制作四种方法,每个级别一个。总的。
我已经多次使用 cocos2d 和只使用基本的 Cocoa 框架遇到这种情况。那么我可以计算一个方法被调用的次数吗?
每次调用您的方法时,您可以只增加一个实例变量整数吗?
我无法在评论中格式化代码,所以要详细说明:
在头文件中,添加一个整数作为实例变量:
@interface MyObject : NSObject {
UIInteger myCounter;
}
然后在你的方法中,增加它:
@implementation MyObject
- (void)myMethod {
myCounter++;
//Do other method stuff here
if (myCounter>3){
[self showEndGameScene];
}
}
@end
我不知道您的方式是否是最好的方式,或者我的方式是否是最好的方式,但就像 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];
我不知道你的游戏逻辑是如何工作的,但我想这会奏效。
对不起,如果我误解了你的问题。