Libgdx 在box2d中拉动肢体

Libgdx 在box2d中拉动肢体,libgdx,box2d,Libgdx,Box2d,我使用Box2d(libgdx)实现了一个BMX自行车及其骑手。自行车是一个身体,骑手的每个肢体都是一个身体。当在空中跳跃时,玩家应该能够控制自行车而不是骑手。由于骑手在车把和踏板处与自行车相连,四肢将跟随自行车,直到手臂/腿完全伸展,此时自行车的运动受到限制 有人能建议一种使用关节(可能)来实现这一点的好方法吗?自行车和骑手都应该受到重力的影响,但是骑手的身体不应该因为重力而塌陷。四肢僵硬且不受重力影响(即它们的内部位置)是可以的,但四肢必须受到自行车的影响。最好是骑手四肢的内部位置应该受到影

我使用Box2d(libgdx)实现了一个BMX自行车及其骑手。自行车是一个身体,骑手的每个肢体都是一个身体。当在空中跳跃时,玩家应该能够控制自行车而不是骑手。由于骑手在车把和踏板处与自行车相连,四肢将跟随自行车,直到手臂/腿完全伸展,此时自行车的运动受到限制

有人能建议一种使用关节(可能)来实现这一点的好方法吗?自行车和骑手都应该受到重力的影响,但是骑手的身体不应该因为重力而塌陷。四肢僵硬且不受重力影响(即它们的内部位置)是可以的,但四肢必须受到自行车的影响。最好是骑手四肢的内部位置应该受到影响,例如当自行车在地面上沉重着陆时,但这是第二优先事项


我可以设置肢体关节的角度限制,以防止其塌陷,但我想当我试图移动自行车时,它们不会移动。

如果肢体跟随自行车,手臂/腿如何能够完全伸展

我认为首先你需要为肢体关节设置限制,以防止它们在剧烈碰撞中由内而外翻转(例如肘关节向后翻转)


然后,您可以确定静止位置中每个关节的目标角度,并且每个时间步,使用关节电机使关节移动到静止位置。如果您使这些关节马达的强度足以使骑手保持直立,但强度不会太大,那么他应该会受到重着陆的影响。

谢谢。我说得不够准确。整个四肢都跟不上自行车。只有手和脚跟随把手踏板的准确移动。在现实生活中,骑手会伸展手臂/腿,相对于身体移动自行车。在游戏中,出于实际游戏控制的原因,我更喜欢另一种方式(自行车移动、手臂/腿伸展)。关于你的电机建议,我想你的意思是,电机应仅用于稳定,而不是实现手/脚跟随自行车的目标。“休息姿势”是什么意思?就像之前储存的关节角度,我们想通过抵消骑手因自身重量而崩溃的影响来保持它?听起来很有希望,但我如何防止这种抵消效应抵消自行车在手/脚上的拉力?确切地说,存储的先前关节角度,例如上臂和下臂之间的理想/自然/静止角度可能是140度。由于骑手在肢体之间的角度可能会变为120度,因此电机速度应为正,等等。您可以在这里看到一个例子(在视频中,我只是在多个存储的关节角度配置之间切换),以确保自行车将玩家拉入到位,而不是相反,你需要使自行车比骑手重很多。