SpriteKit显示变量数



在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,并重新添加标签。是的,我知道这是一个不好的方式来做这个…

不幸的是,SKLabelNode是您最简单的选择,它只是不是最健壮的工具。你只需要在需要的时候更新它的文本和位置。你的代码是正确的,如果你想得到它的实际大小,那么你就会得到它的帧的宽度。

更新文本:

someLabel.text = theNewText;
更新位置:

someLabel.position = theNewPosition;

获取相对宽度

float widthOfLabelFrame = someLabel.frame.size.width;

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

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

最新更新