我正在 OS X 和 Sprite Kit 上开发一款游戏。
如果您查看随附的屏幕截图,您会发现大部分文本都显得污迹/模糊。我在这里使用自定义字体,但即使使用 helvetica,问题也是一样的。另请注意,那两行“……参观饮龙客栈”。和“……离开城市”不模糊……不知道为什么。
场景大小与 View /窗口大小相同,因此这不应该是问题。
知道发生了什么吗?
最佳答案
你的评论是对的,这与一半的数字有关。但与节点本身的放置无关。当您将文本居中时会发生这种情况。您可以通过创建包含 SKLabelNode 的 SKSpriteNode 子类来解决此问题。将 SKLabelNodes HorizontalAlignmentMode 设置为 SKLabelHorizontalAlignmentModeRight(或 left)。现在手动将 SKLabelNode 在 SKNode 中居中,并舍入为整数。
(在下面的例子中,我用透明纹理初始化了一个SKSpriteNode,这主要是为了调试使用,所以我可以轻松地用不透明纹理初始化它,看看它的scenter在哪里。)
更新代码:
-(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);
}
关于macos - Sprite Kit模糊文本(SKLabelNode)渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23830687/