Warner создает подкласс и делает его осязаемым.
import SpriteKit
protocol touchMe: NSObjectProtocol {
func spriteTouched(box: TouchableSprite)
}
class TouchableSprite: SKSpriteNode {
weak var delegate: touchMe!
override init(texture: SKTexture?, color: UIColor, size: CGSize) {
super.init(texture: texture, color: color, size: size)
self.isUserInteractionEnabled = true
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:)has not been implemented")
}
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
delegate.spriteTouched(box: self)
}
}
И назовите его в своем коде с помощью ...
let restart = TouchableSprite(imageNamed: "mine")
restart.delegate = self
Вам нужно, чтобы ваш класс подтвердил TouchMeпротокола и добавьте к нему требуемый метод для подтверждения.
class ViewController, touchMe
Обязательный метод.
func spriteTouched(box: TouchableSprite) {
print("sprite touched")
}