我有兩個場景。場景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