我正在开发OS X和Sprite Kit游戏。
如果您查看附带的屏幕截图,您会发现大部分文字都显得模糊不清。我在这里使用自定义字体,但即使使用helvetica,问题也是一样的。另外请注意,这两行" ...访问饮酒龙旅馆。"和#34; ...离开这个城市"没有模糊......不知道为什么。
场景大小与视图/窗口大小相同,所以这不应该是问题。
知道发生了什么事吗?
答案 0 :(得分:2)
你的评论是正确的,它与半数有关。但不是节点本身的位置。当您将文本居中时,就会发生这种情况。您可以通过创建包含SKLabelNode的SKSpriteNode子类来解决它。将SKLabelNodes horizontalAlignmentMode设置为SKLabelHorizontalAlignmentModeRight(或左侧)。现在手动将SKLabelNode置于SKNode中心,并舍入为整数。
(在下面的示例中,我使用透明纹理初始化一个SKSpriteNode,主要用于调试,因此我可以使用非透明纹理轻松初始化它以查看其图形的位置。)
更新代码:
-(id) init {
if (self=[super initWithTextureNamed:@"1x1trans.png"]) {
_textLabel = [SKLabelNode labelNodeWithFontNamed:@"Avenir-Light"];
_textLabel.horizontalAlignmentMode = SKLabelHorizontalAlignmentModeRight;
[self addChild:_textLabel];
}
return self;
}
#pragma mark - Getters/Setters
-(void) setDelegate:(TextBlock *)delegate {
[super setDelegate:delegate];
_textLabel.text = delegate.text;
_textLabel.position = CGPointMake(floor(_textLabel.calculateAccumulatedFrame.size.width/2), _textLabel.position.y);
}