【问题标题】:How to disable anti-aliasing in SKLabelNode?如何在 SKLabelNode 中禁用抗锯齿?
【发布时间】:2016-04-22 08:03:12
【问题描述】:

我想在我的 SpriteKit 游戏中使用像素字体。
但是我不能使用位图字体,因为我需要支持多种语言(字符太多)。
所以我应该使用 ttf 字体文件。

我尝试了以下代码,但字符被抗锯齿模糊了。

let myLabel = SKLabelNode(fontNamed:"My-Pixel-Font")
myLabel.text = "Hello"
myLabel.fontSize = 10
myLabel.position = CGPoint(x: 100.0, y: 100.0)
myLabel.fontColor = SKColor.GrayColor()
self.addChild(myLabel);

有没有在 SKLabelNode 中禁用抗锯齿的好方法?

我的英语不好。
谢谢。

【问题讨论】:

    标签: ios sprite-kit sklabelnode


    【解决方案1】:

    您可以在SKView 上调用[textureFromNode:] 方法来获取SKLabelNode 的纹理,将其filteringMode 属性设置为SKTextureFilteringNearest 并使用该纹理创建新的SKSpriteNode

    【讨论】:

    • 不管怎样,字体不会渲染抗锯齿吗?您唯一要更改的是缩放时纹理的渲染方式。
    • @Knight0fDragon 您可以使用小尺寸渲染标签以禁用抗锯齿,然后将其纹理缩放到正常尺寸。
    • 我猜像素字体没问题
    • 非常感谢。感谢您的回答,我能够解决问题。
    • 必须有更好的方法来做到这一点。
    【解决方案2】:

    斯威夫特 4

    let label = SKLabelNode()
    label.text = "Test"
    let node = SKSpriteNode(texture: view.texture(from: label))
    node.texture?.filteringMode = .nearest
    addChild(node)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-30
      • 2013-03-03
      • 1970-01-01
      • 2014-02-18
      • 2011-01-26
      相关资源
      最近更新 更多