Swift 4 SKLabelNode 没有出现

标签 swift sprite-kit swift4 sklabelnode

我已经尝试了一段时间来显示一个简单的 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() 函数中调用这个函数。对于混合结果,我的意思是有时标签的红色显示在一个模糊的 block 中(虽然没有文本)。这只能使用对齐属性实现,我不想使用它。

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

根skscene框架:

▿ (-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

最佳答案

我认为问题与 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)

结果是:

enter image description here

关于Swift 4 SKLabelNode 没有出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48860419/

相关文章:

iOS11 - Realm 框架未构建

swift - 编码 SpriteKit 游戏,我收到 "Instance member ' minX' 不能在类型 'CGRect"上使用

swift - 使用 Swift 4 Codable PropertyListDecoder() 解码 PropertyList

ios - captureOutput() 函数从未被调用 swift4

json - OpenWeatherMap 和 Swift 4

ios - SwiftUI 模态演示仅在 navigationBarItems 中有效

ios - 检查两个节点相互接触时颜色是否相同

类和协议(protocol)的 Swift Typealias

ios - 跨多个场景移动 SKSpriteNode 位置

swift - 在 swift spriteKit 中使用 NSUserDefault 在新场景中显示高分