简体   繁体   中英

Add nodes where touches began

I´m making a game with Swift. I need to add nodes where I press the screen, I know this is not from other planet but I can't do it.

Highly simplified example could look like this:

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
    guard let touch = touches.first else { return }
    let location = touch.location(in: self)
    let node = SKNode()
    node.position = location
    addChild(node)
}

Here is how you can add an remove labels by tapping:

    class ViewController: UIViewController{
        private var labels = [UILabel]()
        override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) {
            guard let touch = touches.first else {
                return
            }
            for label in labels {
                if label.frame.contains(touch.location(in: view)) {
                    label.removeFromSuperview()
                    return
                }
            }
            let label = UILabel()
            view.addSubview(label)
            labels.append(label)
            label.text = "touch"
            label.sizeToFit()
            label.center = touch.location(in: view)
        }
    }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM