2014-07-09 112 views
0

我創建了一個基於Box2D的地圖,用於使用具有不同角度斜率(不超過45°)的ChainShape。 我的問題是我的球員與斜坡相撞。球員的身體有2個固定裝置,一個長方形和一個圓形波紋管。每當我移動球員(方法無關緊要,結果都是一樣的),我停在一個斜坡的中間,我慢慢地滑下來。我設法暫時解決了這個問題,但這篇文章的主要原因是,每當我離開斜坡時,我都會射門,因爲我仍然有一些衝動從前一個動作中遺留下來。當我進入向下的斜坡時,或者當我停在斜坡上時,同樣的事情發生,我又開始移動。Box2D,libGDX斜坡碰撞

進入/離開的斜率:

(紅線是所希望的運動中,黑色是運動我現在)

http://i.imgur.com/7hiIwug.png?1

開始在斜坡上移動:

(紅線是所需的動作,黑色是我現在的動作)

http://i.imgur.com/QBXejam.png

你能幫我解決這個問題嗎?我不介意你的答案是否詳細。

+0

身體上的摩擦是什麼?你可以發佈我們可以玩的[MCVE](http://stackoverflow.com/help/mcve)嗎? –

+0

對不起,我不能發佈我幾乎沒有任何時間。人體的形狀顯示在鏈接的圖片上,它具有基本屬性,只有更高質量,我手動更改。讓我重新提出這個問題。你將如何實現我原來發布的鏈接圖片上顯示的所需移動。我正在努力製作一部老派運動的平臺遊戲。也許流氓Legacy運動系統是我想要做的一個很好的例子。 請注意,我正在計劃使用不同的角度斜率。 – user3819849

回答

0

我發現最簡單的方法來阻止角色在斜坡上的滑動,當球員釋放移動按鈕並且身體接地時,將球體設置爲線性減弱到無窮大,我使用射線追蹤來測試對於。

至於你跟不跟着斜坡的角色的問題,這只是由於勢頭。當你到達斜坡的頂部時,你的身體仍然有一個向上的勢頭,它必須清除。和你接近下坡時一樣 - 你的身體仍然有一定的水平動力可以清除。我已經在射線追蹤方面取得了一些成功,可以找到球員位置下方的斜率法線,並手動設置人體的速度以匹配切線,但這不適用於您的應用。

至於你的第二個問題,在斜坡上開始移動,我預計你正在施加一個直接的水平衝動,它將身體從斜坡上拋下。再次,可以通過找到玩家站立的斜坡的坡度並以適當的角度施加力來糾正。