我有两个场景。场景A是游戏场景,其中level
类型变量int
发生变化。在B类中,我想获取变量。如何从另一个类访问变量变量? (例如等级计数)
我现在得到的是以下内容:
-------------------------------- - LevelDone.m ---------------------------------
HelloWorldLayer *object = [[HelloWorldLayer alloc]init];
int pointsForZeroStars = [[requiredPoints objectAtIndex:0] integerValue];
int pointsForOneStar = [[requiredPoints objectAtIndex:1] integerValue];
int pointsForTwoStars = [[requiredPoints objectAtIndex:2] integerValue];
int pointsForThreeStars = [[requiredPoints objectAtIndex:3] integerValue];
NSLog(@"HEALTH = %d",object.health);
CCSprite *levelDoneWindow;
if (object.health < pointsForZeroStars){
NSLog(@"should be 0 stars");
levelDoneWindow = [CCSprite spriteWithFile:@"leveldonescreen0stars.png"];
}
NSLog返回初始值health
这是100,而实际上它是东西比100
较小的在游戏中I类,以调用LevelDone现场拨打pushscene
:
----------------------------- HelloWorldLayer.m(游戏场景)------------ -------------------------
else{
[[CCDirector sharedDirector] pushScene:[LevelDone node]];
[self generateLevelFromPlist:level];
}
的-generateFromPlist
方法健康重置为100,但它的NSLog
方法后,肯定是叫在我的LevelDone.m
类中,仍然打印出health
为100.
如何正确检索此变量的值?
什么场景你在哪里设置/更新的价值`健康?`错误不在这里显示的代码中,但很可能在HelloWorldLayer类中。 – 2011-12-15 19:38:51
听起来很棒/不好!不应该`pushScene`方法暂停所有选择器和方法?我有一个运行在1秒间隔的选择器。但它只会减少健康。实际上,下面的方法`[self generateLevelFromPlist:level];`将它重新设置为100。 – 2011-12-15 19:48:33