我创建了一个用于在我的应用中创建按钮的类。
Button类的代码如下:
import UIKit
import SpriteKit
class SKButtons: SKSpriteNode {
var sprtButton : SKSpriteNode
init(image strImageName : String) {
let texture : SKTexture = SKTexture(imageNamed: strImageName)
sprtButton = SKSpriteNode(imageNamed: strImageName)
super.init(texture: texture, color: UIColor.clear, size: texture.size())
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
此按钮用于我的GameScene(继承自SKScene),我想在触摸按钮时检测触摸开始事件。 GameScene的简化代码是这样的:
import SpriteKit
import GameplayKit
class GameScene: SKScene {}
//
//
let btnControl1 = SKButtons(image: "button")
btnControl1.anchorPoint = CGPoint(x: 0.5, y: 0.5)
btnControl1.size = CGSize(width: 20, height: 20)
btnControl1.zPosition = 3
btnControl1.name = "btnControl1"
self.addChild(btnControl1)
//
//
接触开始起作用,
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
for t in touches {
let cgPointTouched = t.location(in: self)
let skNodeTouched : SKNode = self.atPoint(cgPointTouched)
switch skNodeTouched.name {
case "btnControl1":
print("btnControl1 touched")
default:
return
}
}
}
我在接触开始时设置了一个断点,它没有开火。
那么,我如何让我的触摸开始在GameScene中启动功能,当触摸放置按钮时触发。该按钮是一类SKSpriteNode。
感谢。