Android 检测两个动画精灵之间的像素完美碰撞?
如何检测andengine中两个动画精灵之间的碰撞?我尝试了使用AndEngineCollectionsExtension函数的CollipsWith,但我检测到了与透明像素的碰撞 这是我的代码:Android 检测两个动画精灵之间的像素完美碰撞?,android,andengine,collision-detection,Android,Andengine,Collision Detection,如何检测andengine中两个动画精灵之间的碰撞?我尝试了使用AndEngineCollectionsExtension函数的CollipsWith,但我检测到了与透明像素的碰撞 这是我的代码: private BitmapTextureAtlas mSpriteTexture; private PixelPerfectTiledTextureRegion mSpriteTextureRegion; private PixelPerfectAnimatedSprite sprite;
private BitmapTextureAtlas mSpriteTexture;
private PixelPerfectTiledTextureRegion mSpriteTextureRegion;
private PixelPerfectAnimatedSprite sprite;
private BitmapTextureAtlas mObstaculoBajo_TextureAtlas;
private PixelPerfectTiledTextureRegion mObstaculoBajo_TextureRegion;
private PixelPerfectAnimatedSprite mObstaculoBajo1;
private CollisionLogger spriteCollisionLog;
spriteCollisionLog = new CollisionLogger("SpriteColl");
spriteCollisionLog.startCollisionCheck ();
sprite.collidesWith collisionResult = boolean (mObstaculoBajo1);
spriteCollisionLog.endCollisionCheck (collisionResult);
if (collisionResult)
{
showToast ("Collision");
}
最好的方法是检查两个精灵中心点之间的距离,如果它小于精灵忽略透明区域的宽度,则可以说它们正在碰撞。。另一种方法是,如果您使用的是不规则形状的精灵,则将精灵子类化并覆盖colideswith属性,然后检查碰撞区域像素颜色 此外,还有像素完美的colision扩展,它的thershold用于alpha property 结帐 它速度很快(在我非常低端的中兴通讯刀片上,只需几次碰撞,就可以轻松地以60FPS的速度运行) 您为alpha设置了阈值 它支持针对任何矩形形状的像素完美碰撞(这意味着,如果将星星作为像素完美精灵,将立方体作为普通精灵,当立方体未接触有效星星时,碰撞检查将返回false) 它有不同的调试工具(用于查看性能的记录器,用于查看实体掩码的实用方法,…) 它非常容易使用:只需使用PixelPerfectSprite和PixelPerfectAnimatedSprite,而不是普通的 你可以在这里找到分机
扩展正在尝试与andengine发生冲突,但我肯定遗漏了什么,因为它检测到了冲突,尽管像素是透明的。