Swift中的touchesBegan函数不需要覆盖

时间:2015-07-22 14:32:49

标签: swift cocoa-touch

我是Xcode的新手,我一直在玩Swift中的SpriteKit游戏。

在我看过的每个教程或Stack溢出主题中,touchesBegan函数在它之前有一个覆盖,但是当我将该代码复制到GameScene.swift时,我收到一个错误,“只能在类成员上指定覆盖,“通过自动修复删除”覆盖。“

所以不是这样:override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {...} 它希望我拥有这个:func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {...}

我不确定为什么会发生这种情况,我不知道它是否会影响该功能的运作方式。

我在GameScene.swift中的当前代码是:

import SpriteKit

class GameScene: SKScene {

required init?(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)
}

override init(size: CGSize) {
    super.init(size: size)
    backgroundColor = SKColor.blackColor()
    let stars = Stars()

    var starNode:SKNode!
    starNode = stars.createStars(CGFloat(30), direction: 1, scaleX: self.frame.width, scaleY: self.frame.height)
    addChild(starNode)

    func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
         //Nothing here yet
     } 
   }
}

我还缺少其他什么吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

您必须在.contrainer-fluid { <-- should be container position: relative; } 之后使用}关闭第二个初始化。您的代码应为:

addChild(starNode)