我使用的是CCLabelTTF
來顯示玩家在屏幕上的得分。但是,當我撥打setString
來更新分數標籤時,它不會更新(因此它始終保持爲0)。CCLabelTTF SetString not updating
這裏是我的代碼:
在Player.m,我開始新的PlayerHUD對象:
- (id) init{
if (self = [super init]){
playerHUD = [[PlayerHUD alloc] loadPlayerInterface];
[self addChild:playerHUD z:UPLAYER_Z];
}
return self;
}
在PlayerHUD.m,我開始得分標籤:
- (id) loadPlayerInterface{
if (self = [super init]){
score = 0;
//Score Label
lblScore = [CCLabelTTF labelWithString:[NSString stringWithFormat:@"%d", score] fontName:@"pixel" fontSize:24];
[self addChild:lblScore z:1000];
}
return self;
}
還在PlayerHUD.m,這裏是m Ÿ更新功能:
- (void) updateScore:(NSInteger)_newscore{
score = _newscore;
[lblScore setString:[NSString stringWithFormat:@"%d", score]];
}
而且,在Player.m,我所說的更新功能在這裏:
- (void) addScore{
int scoreToAdd = 50
score += scoreToAdd;
NSLog(@"Score:%d", score);
[playerHUD updateScore:score];
}
什麼是你的日誌'的NSLog(@「分數:%d」,得分);'? –
您是否使用ARC並且您的標籤屬性較弱? –
將斷點放入addScore和updateScore:方法並檢查它們是否被調用 – Morion