首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >2-D碰撞速成课程

2-D碰撞速成课程
EN

Stack Overflow用户
提问于 2011-06-06 08:08:18
回答 2查看 278关注 0票数 2

谁能给我一个网站,博客,文章的参考,或发布自己的2-D碰撞检测的Android速成课程或简单的帮助指南?我查看了在线教程中的冲突代码,但他们没有解释代码中的冲突部分--只是实现sprites的一部分。我使用的不是OpenGL,我的游戏使用的是Canvas。我到处寻找,但我一直在寻找OpenGL或C++的东西,但我使用的是Java。我们将非常感谢所解释的代码示例。感谢你能提供的任何帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-06 08:28:27

碰撞矩形是最简单的(实际上是圆圈,但是有了精灵,你就不用它们了)

为了使两个矩形发生碰撞/重叠,需要共享一些空间

代码语言:javascript
复制
public class Sprite{
    private int left,right;//bounding box left<right and top>bottom
    private int top,bottom;

    public final boolean collidesWith(Sprite other){
        if(this.left>other.right || other.left>other.right)return false;
        if(this.bottom>other.top || other.bottom>other.top)return false;

        return true;
    }
}

为了得到哪些碰撞,你可以扫过整个电路板,并检查所有的重叠在一个维度上

票数 0
EN

Stack Overflow用户

发布于 2011-06-06 08:20:03

在Java中,您可以看到

http://www.jbox2d.org/

这个网站给你提供了一些性能比较:

http://www.4feets.com/2009/03/2d-physics-on-android-using-box2d/

(如果你选择了一个引擎,你可以去“引擎教程”找到你需要的所有源代码

或者你可以自己写(取决于你想要的物理有多复杂)

但我要指出的是,使用画布来绘制实时物理是非常慢的,我开始这样做是因为我正在测试引擎,但你永远不会得到好的帧率。

因此,除非你因为一个很小的原因而需要物理,否则我建议你切换到opengl

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

https://stackoverflow.com/questions/6246795

复制
相关文章

相似问题

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