2012-05-11 104 views
0

我只是想知道是否有方法來改變時間量,直到box2d(cocos2d)中的物體的睡眠狀態被激活。Box2D睡眠時間

我目前使用睡眠狀態作爲結束遊戲的一種方式,所以如果我可以加快實現睡眠狀態所需的時間,則更好。

感謝

回答

2

物理引擎並沒有把對象基於時間睡覺。它只讓身體進入睡眠狀態(空閒狀態)。通常情況下,物理引擎定義規則是什麼時候放置身體進入睡眠狀態是安全的,通常是身體完全停止移動,當沒有其他移動物體接觸它時,以及兩個條件都滿足一段時間時。

在Box2D中,除非修改Box2D源代碼(不推薦),否則不能修改此行爲。在Chipmunk中,您至少可以設定身體在睡眠之前必須閒置多長時間的閾值。改變這個值有時會導致緩慢移動的物體會突然掉入睡眠狀態。

要實現您想要的行爲,您應該定義自己的一組規則。迭代所有可能在遊戲結束時緩慢移動的物體。獲取角度旋轉和速度的值,並檢查它們是否低於某個對您遊戲感覺良好的閾值。然後結束遊戲,或者也可以手動將對象與body-> SetAwake(false)一起睡眠。