SKSpriteKit: как обнаружить "прикосновения" для пользовательских кнопок SKSpiteNode "

Я создал класс для создания кнопок в своем приложении.

Код для класса 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.

Благодарю.

0
источник поделиться

Посмотрите другие вопросы по меткам или Задайте вопрос