2015-04-18 39 views
0

我需要暫停我的遊戲球。我希望他們停下腳步,但他們正在衝動,如果我讓他們沒有動力來阻止他們,衝動就會消失。我試圖暫停他們,不停頓他們,他們仍然繼續朝着同一個方向前進。我試過暫停SKSpriteNode(Swift,SpriteKite)

 ball.paused = true 

但這並不奏效。有人知道嗎?

回答

3

而是凍結的節點,我愣在現場與現場 ?.physicsWorld.speed = 0 因爲凍結所有的節點,而不是我的時間和得分整數這正是我需要的。

0

您可以使用ball.physicsBody.velocity = CGVectorMake(0, 0);但請記住,如果球受重力影響,它仍會下降。

+0

是的,我試過,我張貼的問題後。這不起作用,因爲它不會使球重新運動。它只是凍結它們,當它們解凍時,它們不會移動。 – drewvy22

+0

@ drewvy22 - 當你「解凍」時,再次衝動它。 – sangony

+0

,不工作,因爲這是放在重寫func更新函數,所以力量只是繼續應用。它必須在這個特定的功能中才能使所有其他功能正常工作。我只是不明白爲什麼ball.pause = true根本不起作用 – drewvy22

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 
    } 
}