暂停SKSpriteNode(Swift,SpriteKite)

时间:2015-04-18 18:47:33

标签: ios swift sprite-kit

我需要为我的比赛暂停球。我希望他们停在原地,但他们正在冲动,如果我让他们非动态地阻止他们,那么冲动就会消失。我试图暂停它们并取消暂停它们,但它们仍然朝着同一个方向前进。我试过了

      ball.paused = true

但这不起作用。有人知道吗?

3 个答案:

答案 0 :(得分:3)

我没有冻结节点,而是冻结了场景           场景?.physicsWorld.speed = 0 因为这会冻结所有节点而不是我的时间或得分整数,这正是我所需要的。

答案 1 :(得分:1)

以下是我在游戏中解决的问题:

var ballVelocity  = CGVector()

func pauseAction(ball: SKSpriteNode){

    if ball.dynamic {
        //Ball is moving. Save the current velocity of ball.
        ballVelocity = ball.velocity
        //Stop the ball
        ball.physicsBody.dynamic = false

    }else{
        //Ball is paused.
        //Resume ball movement.
        ball.physicsBody.dynamic = true
        //Add the saved velocity.
        ball.velocity = ballVelocity
    }  
}

答案 2 :(得分:0)

您可以使用ball.physicsBody.velocity = CGVectorMake(0, 0);,但请记住,如果球受到重力的影响,它仍会下降。