如何使用Box2d实现2.5D世界

时间:2012-09-14 07:26:02

标签: box2d

是否可以使用box2d为像这样的游戏(双龙)http://www.youtube.com/watch?v=xb9P0YTeq5Y创建一个2.5D世界?

你知道任何有用的例子吗?

预先感谢您的时间。

1 个答案:

答案 0 :(得分:3)

只有一个想法。我没有测试它。

首先,您必须为精灵制作动画,以提供沿Z方向移动的幻觉。 : - )

然后,您可以使用碰撞过滤根据角色的位置管理碰撞。

Box2D总是要知道两个物体是否发生碰撞,然后再决定它们是否会在你的场景中发生碰撞。

在每个角色的每次碰撞中,你都可以测试其他角色和场景体的Y位置,然后进行测试:

  • 如果在相同的Y位置碰撞的物体(大约是对应于你的角色“深度”的阈值),你改变碰撞体的碰撞组以执行碰撞具有身体特征。

    请看这个优秀的教程,最后您可以通过在自定义函数中使用b2Filter来管理碰撞:http://www.iforce2d.net/b2dtut/collision-filtering

    您可能还需要查看http://box2d.org/forum/viewtopic.php?f=3&t=8738#p37119来处理第一次联系。

  • 如果碰撞的身体不在同一个Y,或者是“朋友”,你什么都不做,他们不会在场景中发生碰撞。

希望它有所帮助。