这个Swift w / SpriteKit代码没有做到预期

时间:2015-10-14 11:34:45

标签: ios swift

我是Swift和iOS开发的新手。我正在观看有关Swift和SpriteKit的iOS开发的教程。按照教程我打开Xcode,新项目,游戏,通用;而我改变的只是GameScene.swift。这是新代码:

import SpriteKit

class GameScene: SKScene {
    override func didMoveToView(view: SKView) {
        /* Setup your scene here */
        var node1 = SKNode()
        node1.position = CGPoint(x: 100, y: 100)
        self.addChild(node1)

        var spr1 = SKSpriteNode(imageNamed: "Spaceship")
        spr1.position = CGPointZero
        spr1.zPosition = 1
        node1.addChild(spr1)
    }

    override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
        /* Called when a touch begins */
    }

    override func update(currentTime: CFTimeInterval) {
        /* Called before each frame is rendered */
    }
}

注意:默认情况下会提供Spaceship图像。

所以在教程中,这段代码为场景添加了一个太空飞船。但是,当我运行模拟器时,场景仍为空白。可能是什么问题?如果需要更多信息,请说明,我会提供。

2 个答案:

答案 0 :(得分:1)

它可能正常运行,您无法在屏幕上看到它。根据您正在模拟的设备,您可能会在屏幕上显示太空飞船。尝试使用其他更小的设备进行模拟,并检查是否可以看到它。

答案 1 :(得分:0)

尝试进入GameViewController.swift并确保您看到以下内容:

class GameViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()

        if let scene = GameScene(fileNamed:"GameScene") {
            let skView                 = self.view as! SKView
            skView.showsFPS            = true
            skView.showsNodeCount      = true
            skView.ignoresSiblingOrder = true

            scene.scaleMode = .AspectFill
            scene.size      = skView.bounds.size

            skView.presentScene(scene)
        }
    }
}