请问 怎么使用物理引擎预测一个小球的下一步位置呢?

目前的做法是自己计算轨迹,但是预测时碰撞又不好计算, 有查询到 cc.geomUtils.intersect.sphere_aabb 方法好像可使用,但是里面的参数 cc.geomUtils.Aabb 这个对象创建又搞不明白, 所以有没有更好的方法可以实现呢?

用物理引擎的话,其实用射线检测去计算碰撞点是最准确的,但射线检测是计算的点与点之间的连线,并不会包含小球自身的半径,所以得出的结果并不是小球实际会产生碰撞的位置。

我把我想到的方法分享给你,
1.根据小球的左边缘、中点、右边缘作3条射线,也就是图中的A、B、C 3条虚线。
2.产生的3个交点a1、b1、c1。我们取离小球中心点b2最近的两个交点,也就是a1、b1或者b1、c1。
3.如果a1、b1是最近的两个交点,就再在A、B中间做一条新的虚线D,得到交点d1。就再在a1、d1、b1三个交点中取离小球中点b2最近的两个交点,也就是a1、d1或者d1、b1。
4.类似二分查找一样,只要递归的深度越高,就与小球实际碰撞的位置越接近。我们可以根据小球宽度去测试出一个比较接近的深度即可。比如递归5次已经和递归10次得到的结果差不多了,那么就规定只递归5次就行了。

1赞

谢谢老铁~

计算上一个点,然后反过来应该就是下一点的位置了吧。

该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。