首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AndEngine:两个精灵的碰撞

AndEngine:两个精灵的碰撞
EN

Stack Overflow用户
提问于 2011-09-12 18:13:02
回答 2查看 5.5K关注 0票数 4

我正在开发一个小的Android游戏。在开始使用AndEngine之前,我使用了Canvas对象并在上面绘制了所有内容。为了测试两个位图是否相互冲突,我检查了它们的边界框是否重叠。在这种情况下,我检查了两个位图的重叠矩形是否有一个非透明像素。这种方法工作得很好,我能够检测到像素的完美碰撞。

由于一些性能问题,我开始使用AndEngine。碰撞检测的效果很好,但是两个精灵的碰撞测试绝对不会像像素那样完美。碰撞测试“只是”一个边界框测试。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-12 18:17:16

这是一个很好的像素完美检测的例子,

AndEngine - Pixel Perfect Detection

票数 5
EN

Stack Overflow用户

发布于 2013-07-18 19:47:35

下面的代码是两个动画精灵的碰撞,在不使用pixelPerfect类的情况下,我在andEngine中工作得很好。这可能对你有帮助。

代码语言:javascript
复制
public boolean isCollides(AnimatedSprite animSprite1 ,AnimatedSprite animSprite2) throws Exception{


float diffX = Math.abs( (animSprite1.getX() +  animSprite1.getWidth()/2 )- 
             (animSprite2.getX() + animSprite2.getWidth()/2 ));
float diffY = Math.abs( (animSprite1.getY() +  animSprite1.getHeight()/2 )- 
             (animSprite2.getY() + animSprite2.getHeight()/2 ));

if(diffX < (animSprite1.getWidth()/2 + animSprite2.getWidth()/3) 
           && diffY < (animSprite1.getHeight()/2 + animSprite2.getHeight()/3)){

   return true;
}else
  return false;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7386282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档