1

我想製作一個關於球的遊戲,並使用IOS 7的物理體使用sprite kit。我的問題是關於在接觸/碰撞時擱置物體。這是我在didBeginContact代碼:Sprite Kit - 在正確的碰撞接觸點上休息物理人體對象

[contact.bodyA setVelocity:CGVectorMake(0, 0)]; 
[contact.bodyB setVelocity:CGVectorMake(0, 0)]; 
contact.bodyA.resting = YES; 
contact.bodyB.resting = YES; 

其實contact.bodyA已經休息,但我只是將它設置爲確保兩個對象都設置爲休息。問題是,即使我設置了contact.bodyA(or B).resting = YES,球也不會相互接觸。

這就是我想要的:

http://i.stack.imgur.com/p8JTk.png

有時候這是什麼發生了:

http://i.stack.imgur.com/LWORO.png

正如你可以在第二張圖片看到,藍色球是有點遠其他球。有沒有其他方法可以始終在接觸點磁球?

回答

0

這可能是物理體的問題。我假設你正在使用[SKPhysicsBody bodyWithCircleOfRadius:spriteWidth/2]。你確定你的精靈圖像是正確的大小,並匹配你正在餵養物理主體構造函數的半徑嗎?

也許你可以在對象的位置存儲在性能prevPosition,並檢測到碰撞時,精靈節點的位置返回到prevPosition和身體設置爲resting
`

+0

是的,這是我如何創建SKPhysicsBody。此外,我非常確定圖像的大小和匹配是正確的,因爲當我將球直接推到球上時球正確地放置。但是當我通過牆球投球時,依靠角度,擊球后球的速度是增加/乘以(我也需要通過設定恆定速度來解決這個問題)。在從牆上彈起之後,球比第一個位置快得多,並且取決於這個速度,它遠離其他球休息。 – Integer

+0

我編輯了一個可能的解決方案 – Monkeyanator

+0

只要告訴我,如果解決方案的工作原理,我相信這是一般的方法 – Monkeyanator