1

我正在使用 cocos2d 和 box2d 制作 ipad 游戏。

在其他元素中,有一个快速移动的玩家对象和一堆静态线对象。我希望这些线能够检测玩家何时越过它们,但不要像墙一样对玩家对象或游戏中的任何其他移动对象起作用。所以我已经将线路设置为传感器。

然而,Box2D 用于快速移动物体碰撞检测的漂亮反隧道代码似乎不适用于设置为传感器的物体。所以现在我的播放器对象直接穿过线,只有五分之一的时候被检测到。

我怎样才能让 box2d 检测到每次越线的精灵,不管它的速度有多快?

编辑:我在 box2D 论坛上发现了这篇文章,有人遇到了类似的问题并找到了可能的解决方案。但是我不遵循如何实施解决方案。也许它会帮助其他人,或者也许有人可以更清楚地解释这个人做了什么。他们是这样说的:

4

1 回答 1

2

好的,我让它工作了。有人在 Box2D 论坛中回应了一个解决方案,即使用光线投射而不是依赖内置的碰撞检测。我能够在 RayWenderlich.com 上的这个优秀教程中找到有关如何执行此操作的说明

出于我的目的,我只是从最后一帧计算了精灵的速度,然后执行了光线投射以查看它是否越过任何线。回调给出了它穿过的 x,y 坐标。

于 2012-04-16T23:46:58.163 回答