模拟Box2D的防水性

Luk*_*man 9 box2d box2d-iphone

我正在做一个游戏,玩家用手指拖着船.我正在将Box2D用于游戏的物理方面.特别是,我正在使用b2MouseJoint将触摸事件附加到船上以让触摸事件拖动船.

但有一个问题是,船在被拖动时的移动方式是不现实的; 它可以简单地在任何方向拖动,在现实世界中,船只只能沿着它的长度移动,并且会有防水性,这使得难以改变船只运动的方向.因此,我需要一种模拟防水性的方法,以使船只运动逼真.

可以在Box2D中模拟它吗?线性阻尼和角度阻尼简单地使船难以移动,但我只是希望船在一个方向上易于移动而且它应该只能抵抗改变方向.

PS我不认为我需要发布我的代码来解决这个问题,但是如果你想查看代码摘录,请告诉我.

小智 1

我有一个建议,可能很微不足道,但需要大量粒子,因此可能需要一些额外的处理能力。您可以通过碰撞创建许多小圆圈,但不绘制它们。所以你会得到水的模拟效果,但不是水。圆圈的大小将决定您需要填满屏幕的圆圈数量,从而决定您的表现。我知道这有点像黑客解决方案,但可能值得一试。您会找到一个适合圆圈大小的折衷方案,既可以实现良好的性能,又可以实现流畅的动态效果。

哎呀,看来有人已经建议了这个...抱歉。