2010-08-03 38 views
0

我正在使用Box2D和cocos2D的iPhone平臺遊戲機。Box2D和平臺遊戲機的聲波狀物理學

我試圖找出一種方法來創建類似的行爲,我的受控角色是在刺蝟索尼克遊戲中發現的,但仍然使用Box2D物理庫,因爲我想要投射物和某些級別的物體根據行爲到逼真的物理學,以及涉及受控角色的特定情況(跳躍,滾入物體等)。

我遇到的主要問題是當角色穿過凸曲線並保持與地面的接觸感,直到距離它達到相當大的距離時保持在地面上。我只想讓角色在地面上對左右命令作出反應,但當我們走過一些微小曲線時,我的形狀往往會離開地面,這樣反應時間會暫時延遲,直到與我們重新建立聯繫。在視覺上沒有分離,但它足以改變在地面上的狀態。另外,角色並不以我想要的方式「擁抱」更大的曲線。

我試過在地面上施加一個額外的向下的力量,但它對於較大的曲線不夠快,足夠大的力量會有效干擾角色的正常運動。對這些問題有什麼想法?

回答

0

根據我的經驗,獲得真正的控制檯般的感覺需要你創建不切實際的物理,尤其是玩家角色。

我相信在box2d中,您可以使用衝動來破解移動系統,同時仍然可以使用碰撞檢測。這是要麼,要麼讓你的角色成爲一個不動的物體,而要自己動手。我忘了哪些似乎對我有用。這已經過去了幾個月;)我相信在某些情況下,我也在y軸上做了一些無效向量來修復錯誤(斜率?)。

如果您的運動在一般情況下正常工作,您可以在地面與曲線接觸時進行移動,這是一種特殊情況,您自己處理物理場景,並且只能在現實世界中進行碰撞檢測。

另一種選擇是使大多數物體使用「假」物理,並且僅將box2d用於碰撞檢測或「真實」物體。

+0

現在我正在用手設置速度矢量,當玩家與地面接觸時。當玩家離開地面時,我讓box2d接管。真正的問題在於告訴玩家何時離開地面(從懸崖跳下或從懸崖上跳下)與離開地面的微小時刻有關,因爲速度使玩家離開曲線並確保玩家跟隨曲線在附近。 – rpeck1682 2010-08-04 00:28:01

+0

@ rpeck1682:我發現手動控制速度在某些情況下似乎沒有我想要的效果。衝動可能有同樣的問題。斜坡是我遇到的問題,因爲我希望它們的行爲與普通地面完全相同,與您案例中的曲線類似。我得出的結論是,我不得不在地面上自己處理所有的物理,或者至少所有的非平坦物理物理。不僅僅是衝動,而是完全處理角色上的所有更新,並且只使用box2d進行命中/掃描測試。在嘗試這個之前我放棄了,儘管... – 2010-08-04 20:07:06

+0

好的,今天我改變了很多東西。我開始使用力量而不是設置速度向量。角色在地上時我會使重力失效。我只對x軸施加力,除了我實施的地面擁抱正常力。我調整了它,以便在嘗試顛倒方向時加速度更高,所以轉身很快。我改變了我的控制代碼,以便您仍然可以快速改變方向,除非您明確跳轉。我還添加了一個滾動狀態,讓角色變成逼真的物理。似乎目前運作良好。 – rpeck1682 2010-08-05 04:15:14