首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CCLabelTTF SetString没有更新

CCLabelTTF SetString没有更新
EN

Stack Overflow用户
提问于 2012-12-16 07:26:37
回答 2查看 3.2K关注 0票数 2

我用一个CCLabelTTF来显示屏幕上玩家的分数。然而,当我调用setString更新分数标签时,它不会更新(因此它总是保持在0)。

这是我的密码:

Player.m中,我启动了一个新的PlayerHUD对象:

代码语言:javascript
复制
- (id) init{
    if (self = [super init]){
        playerHUD = [[PlayerHUD alloc] loadPlayerInterface];
        [self addChild:playerHUD z:UPLAYER_Z];
    }
    return self;
}

PlayerHUD.m中,我创建了分数标签:

代码语言:javascript
复制
- (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中,下面是我的更新函数:

代码语言:javascript
复制
- (void) updateScore:(NSInteger)_newscore{
    score = _newscore;
    [lblScore setString:[NSString stringWithFormat:@"%d", score]];
}

Player.m中,我在这里调用update函数:

代码语言:javascript
复制
- (void) addScore{
    int scoreToAdd = 50

    score += scoreToAdd;

    NSLog(@"Score:%d", score);
    [playerHUD updateScore:score];
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-16 20:35:24

好吧,我找到了问题所在,我想如果有人遇到这样的情况,我会在这里发出去:

问题是,出于一个我仍然忽略的原因,我需要为我的@property对象设置一个@synthesize和一个@synthesize,因为在一些操作之后,它变成了零,就像@InderKumarRathore说的那样。因此,设置一个属性,并为它的综合解决了问题,永远不会再迷路!

经过一些研究,我认为这是因为cocos2D v.0.98 (我以前使用过的)和cocos2D v1.0 (我现在使用的版本)之间关于内存管理的一些修改!

总之,谢谢大家的支持,非常感谢!

票数 2
EN

Stack Overflow用户

发布于 2014-01-25 14:11:10

我设法用下面的代码解决了这个问题(将字符串设置为空字符串,然后将其reSet到您的字符串)

代码语言:javascript
复制
[label setString:@""];
[label setString:yourString]; 
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13899417

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档