我想在Xcode 7.2中创建一个游戏。我想创建一个信息屏幕,里面会有一些标签。但是没有任何东西出现在新创建的场景中。无论我放在新场景上,如图像,精灵,标签。运行时屏幕上没有任何内容。但是我编写的用于创建标签的代码在游戏最初包含的“GameScene”中运行得非常好。
我在InfoScene中添加的代码如下:
import SpriteKit
class InfoScene: SKScene {
override func didMoveToView(view: SKView) {
let thanksLabel = SKLabelNode(fontNamed:"Arial")
thanksLabel.text = "Thank you for Playing!"
thanksLabel.fontSize = 45
thanksLabel.position = CGPoint(x:CGRectGetMidX(self.frame), y:CGRectGetMidY(self.frame))
self.addChild(thanksLabel)
}
}
对我来说似乎没有错。如果我将上述代码放在模板最初具有的GameScene中,则会出现标签。此外,如果我在场景中添加一个精灵,它也不会显示。这真让我困惑。
答案 0 :(得分:3)
我认为您只是忘了将代码放到像:
这样的实例方法中Swift 2.x :
override func didMoveToView(view: SKView) {
// put your stuff here
}
Swift 3.x:
override func didMove(to view: SKView){
// put your stuff here
}
在视图呈现场景后立即调用 didMove
。根据实际文档,您可以使用此方法来创建场景的内容。
更新 :(更正和评论后):
我认为InfoScene
由于某种原因未启动。
确保使用InfoScene
内的断点启动didMoveToView
,或者只需在您的行之间添加此行:
print("∙ \(type(of: self))")
答案 1 :(得分:1)
您确定使用的是InfoScene
课吗?你是如何制作这个实例的?通过SKS文件?如果是这样,您需要更改自定义类字段以指向InfoScene
,默认情况下它将转到SKScene