【问题标题】:Swift 4 SKLabelNode not appearingSwift 4 SKLabelNode 没有出现
【发布时间】:2018-02-19 06:13:04
【问题描述】:

我一直在尝试显示一个简单的 SKLabelNode,但没有成功。我尝试了许多不同的方法,结果喜忧参半。这是我目前拥有的,但没有任何显示:

func layoutMenu() {
    let appNameLabel = SKLabelNode()
    appNameLabel.text = "HI"
    appNameLabel.zPosition = 1000
    appNameLabel.fontColor = SKColor.red
    appNameLabel.position = CGPoint(x:0.5, y:0.5)
    self.addChild(appNameLabel)
}

我在 didMove() 函数中调用了这个函数。通过混合结果,我的意思是有时标签的红色显示在一个模糊的块中(虽然没有文字)。这只能通过我不想使用的对齐属性来实现。

编辑:一些可能有用的框架信息。

根场景帧:

▿ (-0.0, -0.0, 1.0, 1.0)
  ▿ origin : (-0.0, -0.0)
    - x : -0.0
    - y : -0.0
  ▿ size : (1.0, 1.0)
    - width : 1.0
    - height : 1.0

还有 SKLabelNode:

▿ (-11.5, 0.5, 25.0, 25.0)
  ▿ origin : (-11.5, 0.5)
    - x : -11.5
    - y : 0.5
  ▿ size : (25.0, 25.0)
    - width : 25.0
    - height : 25.0

【问题讨论】:

    标签: swift sprite-kit swift4 sklabelnode


    【解决方案1】:

    我认为问题与SKScene 的框架有关,它的大小为(1,1)。为了了解如何设置标签+场景,您可以在 Playground 上尝试以下代码:

    import SpriteKit
    import PlaygroundSupport
    
    let frame = CGRect(x: 0, y: 0, width: 200, height: 200)
    let view = SKView(frame: frame)
    let scene = SKScene(size: frame.size)
    view.presentScene(scene)
    scene.backgroundColor = UIColor.white
    PlaygroundPage.current.liveView = view
    
    let label = SKLabelNode()
    label.text = "mylabel"
    label.fontColor = SKColor.black
    label.position = CGPoint(x:frame.size.width / 2.0, y:frame.size.height / 2.0)
    scene.addChild(label)
    

    结果是:

    【讨论】:

    • 谢谢,关于 skscene 框架关闭的说法是对的!我正在以编程方式做所有事情,所以我的解决方案是在 VC 中将 let scene = MenuScene() 替换为 let scene = MenuScene(size: self.view.frame.size)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-06
    • 1970-01-01
    • 1970-01-01
    • 2021-06-10
    • 2015-01-03
    相关资源
    最近更新 更多