2-D碰撞速成课程

时间:2011-06-06 00:08:18

标签: java android collision-detection

任何人都可以向我提供网站,博客,文章的参考,或者在Android的二维碰撞检测中发布速成课程或简易帮助指南吗?我查看了在线教程中的碰撞代码,但他们没有解释代码的碰撞部分 - 只是实现精灵的部分。我没有使用OpenGL,我正在使用Canvas进行游戏。我一直在寻找,但我一直在寻找OpenGL或C ++的东西,但我使用的是Java。将非常感谢所解释的代码示例。谢谢你尽你所能的帮助。

2 个答案:

答案 0 :(得分:0)

在Java中,您可以查看

http://www.jbox2d.org/

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

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

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

否则你可以自己编写(取决于你想要的物理复杂程度)


但是我会指出使用画布绘制实时物理是疯狂的慢,我开始做它因为​​我测试引擎但你永远不会得到一个好的帧速率。

所以,除非你因为非常小的原因需要物理学,否则我建议你切换到opengl

答案 1 :(得分:0)

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

2个矩形碰撞/重叠需要共享一些空间

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;
    }
}

为了获得哪些碰撞你可以扫过整个棋盘并检查一维中的所有重叠