在我的应用程序中,我有一个玩家和许多敌人(大约 100 多个)..我不想使用 CGRects,因为它不适合敌人。是否有任何示例如何在 cocos2d 中使用许多精灵进行像素完美碰撞检测?
一些解释会很棒;)
非常感谢!
编辑:我正在使用 CCSprite 和 .png 文件。png 具有透明度,但它应该只检测非透明像素上的碰撞。
编辑:我的敌人是圆的。
在我的应用程序中,我有一个玩家和许多敌人(大约 100 多个)..我不想使用 CGRects,因为它不适合敌人。是否有任何示例如何在 cocos2d 中使用许多精灵进行像素完美碰撞检测?
一些解释会很棒;)
非常感谢!
编辑:我正在使用 CCSprite 和 .png 文件。png 具有透明度,但它应该只检测非透明像素上的碰撞。
编辑:我的敌人是圆的。
圆-圆碰撞是最简单的..计算是最快的..我希望你知道玩家的半径和敌人的半径..让20是玩家的半径,10是敌人的半径..一个简单的计算就是:
float dx = player.spr.x - enemy.spr.x;
float dy = player.spr.y - enemy.spr.y;
float dxy = dx*dx + dy*dy;
float collisionRad = (20+10)*(20+10);
if(dxy<= collisionRad)
{
//collision
}
我们正在使用勾股定理计算两点之间的距离。 http://en.wikipedia.org/wiki/Pythagorean_theorem