Java游戏物理-确定交叉点和碰撞检测

Java游戏物理-确定交叉点和碰撞检测,java,collision-detection,Java,Collision Detection,我的问题实际上可以分为两部分。第一,在Java游戏中,确定冲突的合理方法是什么?我的第二个问题是如何找到碰撞点,以便以后使用 最初,我使用一个线程实现了一个基本的碰撞系统,我在前面找到了一个在多边形中查找碰撞的简单方法。我已经把代码贴在下面了。然而,正如我所能说的,这不会显示碰撞点,我必须做一些单独的事情才能找到它 public boolean collisionDetection(int charX, int charY) { if(boundry == null) r

我的问题实际上可以分为两部分。第一,在Java游戏中,确定冲突的合理方法是什么?我的第二个问题是如何找到碰撞点,以便以后使用

最初,我使用一个线程实现了一个基本的碰撞系统,我在前面找到了一个在多边形中查找碰撞的简单方法。我已经把代码贴在下面了。然而,正如我所能说的,这不会显示碰撞点,我必须做一些单独的事情才能找到它

public boolean collisionDetection(int charX, int charY) {
    if(boundry == null)
        return false;

    int numVert = boundry.length;
    boolean ret = false;
    for(int i = 0, j = numVert - 1; i < numVert; j = i++) {
        if (((boundry[i].y >= charY) != (boundry[j].y >= charY)) && (charX <= (boundry[j].x -boundry[i].x) * (charY - boundry[i].y) / (boundry[j].y - boundry[i].y) + boundry[i].x)) {
             ret = !ret;
        }
    }
    return ret;
}
公共布尔冲突检测(int-charX,int-charY){
if(boundry==null)
返回false;
int numVert=boundry.length;
布尔ret=false;
对于(inti=0,j=numVert-1;i=charY)!=(边界[j].y>=charY))&&(charX点2->点3->点1)

如果知道这些点是按连接顺序排列的(例如,它们构成了对象的边界),那么说我可以使用多种线相交方法来确定角色是否与多边形的边界相交是否合乎逻辑?我知道角色的当前位置以及预期位置


有什么想法吗,或者如果你有更好的实现方法的建议?

你需要做点对点或点对点碰撞,看看我的答案


这说明了两种碰撞检测方法。它是3D的,但只需放下第三个轴,就可以用于2D。希望这有助于了解点是按连接顺序排列的(例如,它们构成对象的边界),那么说我可以使用多种线相交方法来确定角色是否与多边形的边界相交是否合乎逻辑?
如果我们讨论的是二维中的两个多边形,那么是。如果角色不能完全位于多边形内部(反之亦然),然后是的…回答-是的,二维空间。我对处于多边形的“内部”有些担心,但我相信我可以稍后处理(或进行检查)。