Как я могу остановить движение объекта, когда я касаюсь объекта?

В моем игровом приложении есть случайно перемещающийся объект. Я хочу остановить это и напечатать несколько слов на экране, когда я касаюсь / ловлю это. Но я не знаю, что я могу сделать на странице gamescene.swift. Что я должен написать в штрихах Began? Вот мой код:

import SpriteKit

let BallCategoryName = "ball"

class GameScene: SKScene {
   override func didMoveToView(view: SKView) {
       super.didMoveToView(view)

       let borderBody = SKPhysicsBody(edgeLoopFromRect: self.frame)


       borderBody.friction = 0


       self.physicsBody = borderBody


       physicsWorld.gravity = CGVectorMake(15, 15)

       let ball = childNodeWithName(BallCategoryName) as! SKSpriteNode
       ball.physicsBody!.applyImpulse(CGVectorMake(10, -10))

 }
    override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {

       let touch = touches.first as! UITouch


        }

}

1 ответ

Сначала вам нужно поместить переменную ball вне didMoveToView:

class GameScene: SKScene {

    let ball = childNodeWithName(BallCategoryName) as! SKSpriteNode

    override func didMoveToView(view: SKView) {
        [...]
    }
}

touchesBegan:

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
    for touch:AnyObject in touches{
        let location = (touch as! UITouch).locationInNode(self)
        let nodeTouched = nodeAtPoint(location)

        //Detect if the ball is touched
        if(nodeTouched == ball){
            //Do something
        }
    }
}
Другие вопросы по тегам