我正在制作一款使用加速度计的游戏,基本上我的角色位于屏幕的底部,他需要避免物体从屏幕顶部掉落。我使用CGRectIntersectsRect
来查看我的角色精灵是否与我的敌人精灵相交,但是这个问题是CGRectIntersectsRect
检测到我角色精灵的透明部分。Cocos2D 2.0 CGRectIntersectsRect透明
有没有办法让它忽略精灵的透明度?
我正在制作一款使用加速度计的游戏,基本上我的角色位于屏幕的底部,他需要避免物体从屏幕顶部掉落。我使用CGRectIntersectsRect
来查看我的角色精灵是否与我的敌人精灵相交,但是这个问题是CGRectIntersectsRect
检测到我角色精灵的透明部分。Cocos2D 2.0 CGRectIntersectsRect透明
有没有办法让它忽略精灵的透明度?
一种方法是使用Box2d。即使你不想要物理模拟,你也可以设置体形来用于碰撞检测。
另外,如果你不想使用C++,那么Chipmunk也有碰撞检测的形状。这篇文章概述了一些细节:Chipmunk collision detection
如果你不想使用物理模拟器,你可以将你的精灵想象成多个矩形,所以你测试所有部件的命中而不是整个边界框。如果精灵形状很简单,这可能会更容易,并给你一个很好的结果。
除了具有手动设计形状的物理引擎(推荐用于最佳性能),如果需要非常准确的碰撞检测,还可以使用pixel-perfect collision detection。