繁体   English   中英

如何在cocos2d中对许多精灵进行像素完美碰撞?

[英]How to do pixel perfect collision on many sprites in cocos2d?

在我的应用程序中我有一个玩家和许多敌人(约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
}

我们使用毕达哥拉斯定理计算2点之间的距离.http: //en.wikipedia.org/wiki/Pythagorean_theorem

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM