[英]Detect collision between two bodies in Box2d and libgdx(android)
我是libgdx和Box2d引擎的新手,我正在使用同一个引擎开发游戏。我想检测两个物体之间的碰撞以执行某些功能。但是我不知道执行此操作的最佳方法,也想了解一点冲突。请提供一些建议。我已经实现了ContactListener,但无济于事。
我正在使用此代码作为参考。
谢谢
您已经以正确的方式创建和设置了一个ContactListener ...(对于常规设置,libgdx Wiki很棒: https : //github.com/libgdx/libgdx/wiki/box2d#contact-listeners )
如果现在要处理特定的联系人,例如,您需要在beginContact();
添加一些实现beginContact();
听众的方法。 beginContact();
方法包含一个Contact
实例,其中包含您所需的全部:
通过固定装置,您可以访问要绘制的实体和演员。 可以通过body.setUserData(actor);
与Actor建立连接body.setUserData(actor);
方法。
现在,您需要决定如何找出正确的碰撞。 您可以使用传感器,它们是仅作为传感器的box2d固定装置。 这意味着,当一个物体与传感器碰撞时,它不会反弹,而会掉落。 但是您便可以在侦听器中检测到此联系。
同样,向您的角色添加某种GameObjectType可能是一个好主意。 假设您创建了一个跳跃游戏,玩家在有水的情况下从一个平台跳到另一个平台。 然后,您可以通过box2d实体的getUserData()方法创建具有诸如PLAYER,WATER,PLATFORM等类型的actor,现在yu可以访问Actor并比较其类型。
例如,当PLAYER类型的演员与WATER类型之一碰撞时,他会溺水而死...
希望能帮助到你...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.