SpriteKit显示变量号

时间:2014-07-04 02:06:05

标签: objective-c sprite-kit sklabelnode

在iPhone SpriteKit的屏幕上显示某些值(随游戏运行而变化)的最佳方法是什么?我能想到的唯一方法是SKLabelNode,但它可能并不意味着像这样使用,而且我找不到任何方法来测量它的宽度,这使我无法正确定位它(我想要它在右下角)。在此先感谢:)。

@Edit

我尝试这样做:

 SKLabelNode *someLabel = [SKLabelNode labelNodeWithFontNamed:@"Chalkduster"];

 someLabel.text = some_string;
 someLabel.fontSize = 30;
 someLabel.fontColor = [SKColor blackColor];
 someLabel.position = CGPointMake(some_int, 15);

 [self addChild:someLabel];

游戏运行时some_stringsome_int的值会发生变化,因此会移除someLabel,重新分配someLabel.textsomeLabel.position,并且标签再次添加。是的,我知道这是一个不好的方法......

1 个答案:

答案 0 :(得分:1)

不幸的是,SKLabelNode是您最简单的选择,它不是最强大的工具。 您只需要在需要时更新其文本及其位置。你的代码是正确的,如果你想获得它的实际大小,那么你将得到它的框架的宽度。

更新文字:

someLabel.text = theNewText;

更新位置:

someLabel.position = theNewPosition;

获得相对宽度

float widthOfLabelFrame = someLabel.frame.size.width;

可能有帮助的其他对齐设置(垂直基线是默认值):

someLabel.horizontalAlignmentMode = SKLabelHorizontalAlignmentModeRight;
someLabel.verticalAlignmentMode = SKLabelVerticalAlignmentModeBaseline;