2016-12-01 73 views
4

我想在Xcode 7.2中创建一个游戏。我想创建一个信息屏幕,里面会有一些标签。但是在新创造的场景中什么也没有显示出来。无论我在新场景中放置什么,如图像,精灵,标签。当我运行它时,没有任何东西出现在屏幕上。但是我写的创建标签的代码在游戏最初包含的“GameScene”中工作得很好。什么都没有出现在SpriteKit的场景

,我把在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

我建议你张贴的实例,并提出了'InfoScene' – Epsilon

回答

3

我觉得你只是忘了把你的代码实例方法,如:

斯威夫特2.X

override func didMoveToView(view: SKView) { 
    // put your stuff here 
} 

斯威夫特3.X:

override func didMove(to view: SKView){ 
    // put your stuff here 
} 

didMove在场景由视图呈现之后立即被调用。根据实际的文档,您可以使用此方法创建场景的内容。


更新:(后您的整改意见):

我觉得InfoScene未启动的某些原因。 确保您的内部didMoveToView使用断点InfoScene启动或只需添加您的线之间这条线:

print("∙ \(type(of: self))") 
+0

对不起,我贴错了代码的代码..我实际上使用了didMoveToView方法。但现场仍然没有什么。 –

1

你确定你使用的是InfoScene类?你如何制作这个实例?通过SKS文件?如果是这样,您需要更改自定义类字段设置为指向您的InfoScene,默认情况下它会去SKScene