考虑我是通过手指触摸和拖动动作拉动公共汽车。道路不直。所以,如果我在路上移动我的手指。总线应该跟随手指以及转弯时需要的一些旋转。
首先找到演员和接触点之间的距离,如果它少于那么 我只是将总线(Actor)的位置设置为触点位置。
现在感觉我正拖着公共汽车。
现在我必须处理轮换。
我可以向演员施加力量接触点吗? 我可以处理演员对接触点的旋转......
在我的脑海中简单的逻辑是拖动手指意味着绘制一条线..现在我必须匹配演员的中心线到拖动线..请给我一些关于处理公交车轮换的提示。 谢谢,
答案 0 :(得分:1)
听起来像你只是希望公共汽车沿着一条道路行驶,就像普通公共汽车沿着道路走。
您可以通过向其施加扭矩来旋转身体。这意味着你将使用applyForce(...)而不是使用质心作为施加力的点。
但是你不想施加一个力并使它朝着某个目标点移动,因为那只会看起来很怪异,你需要对现实的汽车物理进行一些特殊处理(对于自上而下,你可以看到这里http://www.iforce2d.net/b2dtut/top-down-car)。
最好自己计算路径并计算该路径上不同点之间的角度。然后使用body.setTransform(...)并手动设置总线的位置和旋转。如果你没有任何物理引擎那么你就是这样做的。