看到box2D的身体无法调整大小,我的身体和动画精灵都有问题。
这里的情况我毫不怀疑并不是唯一的: 我的精灵维度在攻击,行走,跳跃等不同动作中略有变化。看到我将如何使用box2D机身进行碰撞检测,这可能会导致相当大的问题。 到目前为止,我想到了解决这个问题的3种方法。
1-不使用box2d物体进行碰撞检测,只需将它们用于物体的物理行为
2-删除并在每次渲染之前重新创建主体。或者动画改变。
3-尝试重新检查物体上的碰撞,看它是否实际与精灵本身发生碰撞。然后行动。
这就是我对这些解决方案的问题。
1-这种方式使得使用box2d作为一个整体看起来相当荒谬,我也将使用不是一个,而是两个世界逻辑,并试图让它们保持同步。看起来很头疼。
2-这看起来并不是非常优化的,我也怀疑我可以在没有副作用的物理世界中让对象弹出和不存在。
3-我不确定如何做到这一点,实际上这个选项是我需要更多建议的选项。从长远来看会不会造成任何困难,或造成物理冲突。
请告诉我是否有一种有效的方法可以解决这个问题,或者是否有任何上述解决方案值得一试。
我的谢谢
编辑: 这更像是一个普遍的问题,因为我仍然没有为我写的游戏提供适当的图形,但这是我的练习材料:
行走等待(站立)
攻击
答案 0 :(得分:1)
身体可以有多个固定装置,因此您可以将每个状态的所有固定装置添加到身体。如果你使它们为零密度,它不应该影响身体的物理行为。但请记住,身体上至少有一个固定装置应该是非零密度 - 你可以使一个固定装置作为主要固定装置,它具有密度以使身体具有一定的质量。
如果您只是需要检测这些灯具何时接触到某些东西,您可以将它们设置为传感器固定装置,并使用您的联系人监听器来跟踪他们当前正在触摸的其他东西。无论您的角色处于哪种状态,联系人监听器都会为您提供有关所有灯具的回调,并且对于每个州,您将保留该州的灯具触摸的列表。
如果您需要灯具进行物理交互,但只有当它们的状态处于活动状态时,您可以执行上述操作,但也可以在BeginContact中进行联系 - > gt; setEnabled(false)如果触点是针对不是的灯具目前处于活跃状态。