我刚开始一个项目并添加以下代码行:
override func didMoveToView(view: SKView) {
let myNode = SKNode()
myNode.position = CGPoint(x: 250.0, y: 300.0)
addChild(myNode)
let mySprite = SKSpriteNode(imageNamed: "Spaceship")
mySprite.position = CGPoint(x: 0, y: 0)
mySprite.zPosition = 1
myNode.addChild(mySprite)
let myOtherSprite = SKSpriteNode(imageNamed: "Spaceship")
myOtherSprite.position = CGPoint(x: 50.0, y: 50.0)
myOtherSprite.zPosition = 2
myNode.addChild(myOtherSprite)
}
但精灵不会出现在场景中。这有什么问题?我多次检查了我的代码,我认为没有错误。
答案 0 :(得分:0)
将scene.size = skView.bounds.size
添加到您的GameViewController
viewDidLoad
方法中,以便它看起来像这样:
override func viewDidLoad() {
super.viewDidLoad()
if let scene = GameScene(fileNamed:"GameScene") {
// Configure the view.
let skView = self.view as! SKView
skView.showsFPS = true
skView.showsNodeCount = true
/* Sprite Kit applies additional optimizations to improve rendering performance */
skView.ignoresSiblingOrder = true
/* Fix Size */
scene.size = skView.bounds.size
/* Set the scale mode to scale to fit the window */
scene.scaleMode = .AspectFill
skView.presentScene(scene)
}
}
正如Knight0fDragon所述,这将影响autoLayout的工作方式,因此它可能不适用于所有解决方案。