【发布时间】:2012-09-26 14:34:56
【问题描述】:
我正在开发一款游戏,我需要检测直线和多边形之间的碰撞。经过多次谷歌搜索,cocos2d 似乎不支持多边形碰撞?
我能够执行直线和矩形碰撞检测,但不能执行多边形。 我必须搬到 Box2d 吗?非常感谢任何建议。
【问题讨论】:
标签: cocos2d-iphone box2d polygon collision
我正在开发一款游戏,我需要检测直线和多边形之间的碰撞。经过多次谷歌搜索,cocos2d 似乎不支持多边形碰撞?
我能够执行直线和矩形碰撞检测,但不能执行多边形。 我必须搬到 Box2d 吗?非常感谢任何建议。
【问题讨论】:
标签: cocos2d-iphone box2d polygon collision
Cocos2D 不提供任何类型的碰撞检测。你想要的是一个射线与多边形相交测试,你可以用 Box2D 或 Chipmunk 来做。两者都包含在 Cocos2D(适用于 iPhone)中。 Box2D 和 Chipmunk 允许实现游戏物理,如重力、风、碰撞检测等。
如果您需要在普通的 Cocos2D 中进行“某种”检测,那么我建议使用 CGRectContainsCGRect 或 CGRectContainsCGPoint 或 CGRectIntersectsCGRrect 函数来做同样的事情。这可能会帮助您实现您想要的,但它不会像使用 Box2D 或 Chipmunk 游戏物理一样好。
【讨论】:
cocos2d 仅提供简单的碰撞检测,例如 CCRect::rectContainsPoint(in cocos2d-x) 或 rectIntersectsRect。
如果您的多边形是一个矩形,那么您可以通过判断该矩形是否包含线的一个点来进行检测。
【讨论】: