2012-09-26 32 views
0

我正在使用Box2d(libgdx)與騎手一起實施BMX自行車。自行車是一個身體,騎手的每個肢體是一個身體。當在跳躍期間空降時,玩家應該能夠控制騎車人而不是自行車。由於騎車人在車把和踏板上連接到自行車,所以四肢將跟隨自行車,直到手臂/腿完全伸展,此時自行車的運動受到限制。在box2d中拉動肢體

任何人都可以建議使用關節(可能),以達到這一點的好方法?自行車和騎手都應該受到重力的影響,但騎車人不應因重力而崩潰。四肢僵硬並且不受重力影響(即它們的內部位置)是可以的,但四肢必須受到自行車的影響。優選地,例如當自行車在地面上嚴重着地時,應該影響騎車者的肢體的內部位置,但是這是第二優先。

我可以對肢體關節設置角度限制以防止其塌陷,但是當我嘗試移動自行車時,我猜他們不會退縮。

回答

0

如果四肢跟隨着自行車,手臂怎麼能完全伸展?

我認爲首先你需要爲肢體關節設置限制,以防止它們在猛烈的碰撞中翻轉(例如,肘關節向後轉動)。

然後,您可以確定靜止位置中每個關節的目標角度,並且每個時間步使用關節電機使關節移動到靜止位置。如果你使這些聯合電機足夠堅固,以保持騎手直立,但不是太強,那麼他應該受到嚴重着陸的影響。

+0

謝謝。我不夠確切。整個四肢不跟隨自行車。只有手腳遵循手柄踏板的確切運動。在現實生活中,騎手會伸展手臂/腿部以將自行車相對於他的身體移動。在遊戲中,爲了實際的遊戲控制原因,我更喜歡其他方式(自行車移動,手臂/腿伸展)。 –

+0

關於你的電機建議,爲了清楚起見,我想你的意思是說,電機應該僅用於穩定性,而不是達到手/腳跟隨自行車的目標。 「休息姿勢」是什麼意思?就像我們希望通過消除騎手因自己的體重而崩潰的效果來保存的先前關節角度一樣?聽起來很有希望,但是我會如何防止這種抵消效應,從取消手中/腳上的自行車上的力量中取消? –

+0

準確地說,存儲的以前的關節角度,例如上臂和下臂之間的理想/自然/靜止角可能是140deg。當騎車人碰到四肢之間的角度可能會變成120度,所以電機速度應該是正值,等等。您可以在這裏看到一個例子http://www.youtube.com/watch?v=rbUBAr7S_Wk (在視頻中,我只是簡單地在多個存儲的關節角度配置之間進行切換)爲了確保自行車將玩家拉到位而不是相反,您需要使自行車比騎車人重得多。 – iforce2d