두 개의 장면이 있습니다. 장면 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는 100 health
, 실제로 내가 LevelDone 장면 호출하기 위해 pushscene
전화 게임 클래스에서 100
보다 작은 무언가이다 :
가----------------------------- HelloWorldLayer.m (게임 장면) ------------ -------------------------
else{
[[CCDirector sharedDirector] pushScene:[LevelDone node]];
[self generateLevelFromPlist:level];
}
-generateFromPlist
방법은 100 건강을 재설정하지만 그것은 확실히 NSLog
방법 후 호출 내 LevelDone.m
클래스에서 그럼에도 불구하고 health
이 100이라는 것을 인쇄합니다.
이 변수의 값을 올바르게 검색하려면 어떻게해야합니까?
에 어떤 장면 게임을 통해 "지속 없다"합니다 'health? '오류는 여기에 나와있는 코드에는 없지만 HelloWorldLayer 클래스에있을 가능성이 큽니다. –
위대한/나쁜 소리! 'pushScene' 메소드가 모든 선택자와 메소드를 멈추지 않아야합니까? 1 초 간격으로 실행되는 셀렉터가 있습니다. 그러나 그것은 단지 건강을 감소시킵니다. 사실 다음의'[self generateLevelFromPlist : level];'은 다시 100으로 설정합니다. –