1

在 iPhone 的屏幕上显示某些值(随着游戏运行而变化)的最佳方式是什么SpriteKit?我能想到的唯一方法是SKLabelNode,但它可能不应该这样使用,而且我找不到任何方法来测量它的宽度,这让我无法正确定位它(我希望它在底部右上角)。提前致谢 :)。

@编辑

我这样做的尝试:

 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_string而变化,因此被删除,并重新分配,并再次添加标签。是的,我知道这是一个不好的方法......some_intsomeLabelsomeLabel.textsomeLabel.position

4

1 回答 1

1

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

更新文字:

someLabel.text = theNewText;

更新位置:

someLabel.position = theNewPosition;

获取相对宽度

float widthOfLabelFrame = someLabel.frame.size.width;

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

someLabel.horizontalAlignmentMode = SKLabelHorizontalAlignmentModeRight;
someLabel.verticalAlignmentMode = SKLabelVerticalAlignmentModeBaseline;
于 2014-07-04T03:23:00.867 回答