Touch Sprite, make it jump up then fall down again(repeat as many times as spritenode is tapped.)
<p>I created a project where I have a ball and when the view loads, it falls down, which is good. I'm trying to get the ball to jump back up and fall down again when the Spritenode is tapped.</p>

<p><strong>--This Question was edited--</strong>
 Originally, I was able to get it to work when <code>sprite.userInteractionEnabled = false</code>. I had to turn this statement true in order to get the score to change.</p>

<p><a href="https://i.stack.imgur.com/pkvUw.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/pkvUw.png" alt="enter image description here"></a></p>

<p>Now I can't get the balls to fall and be tapped to jump. When I turn <code>ball.physicsBody?.dynamic = true</code>, the balls will fall due to gravity. How do I tap the sprite itself and make it jump. </p>

<p><strong>GameScene.swift</strong> (For those who want to try the code for themselves.)</p>

<pre><code>import SpriteKit

class GameScene: SKScene {
var ball: Ball!


private var score = 0 {
    didSet { scoreLabel.text = "\(score)" }
}


override func didMoveToView(view: SKView) {
    let ball = Ball()


    scoreLabel = SKLabelNode(fontNamed:"Geared-Slab")
    scoreLabel.fontColor = UIColor.blackColor()
    scoreLabel.position = CGPoint( x: self.frame.midX, y: 3 * self.frame.size.height / 4 )
    scoreLabel.fontSize = 100.0
    scoreLabel.zPosition = 100
    scoreLabel.text = String(score)
    self.addChild(scoreLabel)





    ball.position = CGPoint(x:self.size.width / 2.0, y: 440)

    addChild(ball)



    ball.physicsBody = SKPhysicsBody(circleOfRadius: 120)
    ball.physicsBody?.dynamic = true
    ball.physicsBody?.allowsRotation = false

    ball.physicsBody?.restitution = 3
    ball.physicsBody?.friction = 0
    ball.physicsBody?.angularDamping = 0
    ball.physicsBody?.linearDamping = 0

    ball.physicsBody?.usesPreciseCollisionDetection = true
}


 class Ball: SKSpriteNode {



    init() {
        let texture = SKTexture(imageNamed: "Ball")
        super.init(texture: texture, color: .clearColor(), size: texture.size())
        userInteractionEnabled = true

    }


    override func touchesBegan(touches: Set&lt;UITouch&gt;, withEvent event: UIEvent?) {
        let scene = self.scene as! GameScene
        scene.score += 1



    }
</code></pre>

<p>Before, it was a SKNode being tapped using <code>CGVectorMake</code>(impulse, velocity) now, it's a SKSpriteNode, and I tried using <code>SKAction</code>, but it either does not work, or I'm putting it in the wrong place(touches begin).</p>