SpriteKit中没有任何内容显示在场景中

时间:2016-12-01 06:38:14

标签: ios swift sprite-kit

我想在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中,则会出现标签。此外,如果我在场景中添加一个精灵,它也不会显示。这真让我困惑。

2 个答案:

答案 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