2

如何更新在 initWithSize 中创建的标签文本?这是 initWithSize 中标签的代码:

SKLabelNode *scoreLabel = [SKLabelNode labelNodeWithFontNamed:@"TimesNewRoman"];
    scoreLabel.text = [NSString stringWithFormat:@"%i", score];
    scoreLabel.fontSize = 30;
    scoreLabel.position = CGPointMake(290, CGRectGetMidY(self.frame) - 30);
    scoreLabel.zRotation = -M_PI/2;
    [self addChild:scoreLabel];

随着游戏的运行,我更新了变量分数,我只是想知道如何让标签显示新分数。

4

2 回答 2

2

您必须scoreLabel在头文件中声明,然后在scoreLabel.text = //Your text任何您想要的地方声明。

编辑:

在您的 .h 文件中,声明 @property (nonatomic,strong) SKLabelNode *scoreLabel;

在您的 .m 文件中,添加 @synthesize scoreLabel;

当您初始化标签时

self.scoreLabel = [SKLabelNode labelNodeWithFontNamed:@"TimesNewRoman"];

并不是

SKLabelNode *scoreLabel = [SKLabelNode labelNodeWithFontNamed:@"TimesNewRoman"];

于 2014-02-07T07:09:57.027 回答
2

为您的 SKLabelNode 设置保留/强属性。然后从您的应用程序中调用任何位置

@Property(nonatomic,retain)SKLabelNode *scoreLabel;

如果你的分数值有字符串

self.scoreLabel.Text=yourscore

如果是整数

self.scoreLabel.Text=[NSString stringWithFormat:@"%d", [yourscore intValue]]];
于 2014-02-07T07:17:19.307 回答