У меня есть CCLabelAtlas, который у меня есть на слое для отображения текущего счета в моей игре ... проблема, с которой я сталкиваюсь, заключается в том, что он не обновляется, когда я использую [scoreLabel setString:]
. Вот как я это выложил:
В шапке:
@interface GameScene : CCLayer {
...
CCLabelAtlas* scoreLabel;
}
И в init:
scoreLabel = [[CCLabelAtlas alloc] initWithString:@"0" charMapFile:@"scoreCharMap.png" itemWidth:6 itemHeight:8 startCharMap:'.'];
[scoreLabel setPosition:ccp(105, 414)];
[self addChild:scoreLabel z: 6];
scoreCharMap.png - это пользовательская карта, включающая ./0123456789
моего желаемого шрифта. Когда счет меняется, я пытаюсь сделать это, чтобы ярлык обновился с текущим счетом:
NSString* str = [[NSString alloc] initWithFormat:@"%d", [[GameRunner sharedInstance] currentScore]];
[scoreLabel setString: str];
[str release];
[scoreLabel draw];
Проблема в том, что он никогда не обновляется - он просто сидит там и отображает 0. Я точно знаю из-за точек останова и отладки, что вызывается setString, и что строка, которую он должен отображать, является правильной - но это просто не обновляется. Жесткое кодирование значения и высказывание [scoreLabel setString:@"1234"]
тоже ничего не делает. Что я здесь не так делаю? Я использую Cocos2d 0,99 - заранее спасибо!