您已经以正确的方式创建并设置了ContactListener ...(对于一般设置,libgdx wiki很棒:https://github.com/libgdx/libgdx/wiki/box2d#contact-listeners)
如果您现在想要处理特定的联系人,那么您需要在beginContact();侦听器的方法中添加一些实现.该beginContact();方法包含一个Contact 实例,它可以满足您的所有需求:
通过灯具,您可以访问您正在绘制的实体和演员.可以通过该body.setUserData(actor);方法完成与Actor的连接.
现在您需要决定如何找出正确的碰撞.您可以使用传感器,这些传感器只是作为传感器的box2d灯具.这意味着当一个物体与一个传感器发生碰撞时,它不会反弹,而是会反过来掉落.但是,您可以在侦听器中检测到此联系人.
此外,向您的actor添加某种GameObjectType可能是个好主意.想象一下,你创造了一个跳跃游戏,玩家从平台跳到平台,下面有水.然后你会用PLAYER,WATER,PLATFORM等类型创建你的演员......通过box2d体的getUserData()方法你现在可以访问Actors并比较它们的类型.
例如,当一个类型PLAYER的演员与一个类型的水碰撞时,他会淹死......
希望能帮助到你...
| 归档时间: |
|
| 查看次数: |
10125 次 |
| 最近记录: |