像素碰撞检测?

时间:2011-10-01 22:18:45

标签: ios cocos2d-iphone collision-detection box2d chipmunk

在我的应用程序中,我有一堆CCSprites,我希望有一个碰撞检测功能,只有当CCSprites中的非透明像素发生碰撞时才会起作用。我不希望被限制在碰撞的精灵之间的颜色。我认为这就是'Pixel Perfect Collision Detection'主题在Cocos2D论坛中所做的,但我想使用任何颜色来实现真正的碰撞。这种碰撞检测将在我的游戏循环中,因此它不会太昂贵。无论如何,有没有人对我如何做到这一点有任何想法? 我愿意使用Cocos2D,Box2D或者Chipmunk甚至是UIKit,如果可以的话。

谢谢!

2 个答案:

答案 0 :(得分:3)

在谈论硬件渲染图形时,“我想要像素完美碰撞”和“我不希望它们太昂贵”是非常相互排斥的。

编写一个更简单的渲染器,它不允许这种复杂的变换,消除锯齿或子像素放置,或使用实际的GPU渲染某种碰撞掩模。在GPU上执行此操作的问题在于,将内容发送到GPU的速度很快,而且需要花费很多才能将其恢复。这种技术非常罕见,这就是原因。

Chipmunk Pro的自动几何图形支持将各种图像转换为碰撞形状,但还不完整。

答案 1 :(得分:1)

如果你不想失去表现,这是不可能的。尝试以圈子形式进行系统冲突,这是进行碰撞的最佳方式