gpt4 book ai didi

swift - Swift 中的 TouchBegan 函数不需要重写

转载 作者:行者123 更新时间:2023-11-30 10:13:31 26 4
gpt4 key购买 nike

我是 Xcode 新手,一直在尝试用 Swift 制作 SpriteKit 游戏。

在我看过的每个教程或堆栈溢出主题中,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
}
}
}

我还缺少什么吗?

谢谢!

最佳答案

您必须在 addChild(starNode) 之后使用 } 关闭第二个 init。您的代码应为:

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)
}

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

关于swift - Swift 中的 TouchBegan 函数不需要重写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31566192/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com