У меня есть две сцены. Сцена 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.
В игровом классе я звоню pushscene
, чтобы вызвать сцену LevelDone:
----------------------------- HelloWorldLayer.m (Сцена игры) ----------- --------------------------
else{
[[CCDirector sharedDirector] pushScene:[LevelDone node]];
[self generateLevelFromPlist:level];
}
Метод -generateFromPlist
сбрасывает здоровье до 100. Но он, безусловно, вызывается после метода NSLog
в моем классе LevelDone.m
, который, тем не менее, печатает, что health
равно 100.
Как правильно получить значение этой переменной?