Java 我需要一些机器人的刚体碰撞检测引擎

Java 我需要一些机器人的刚体碰撞检测引擎,java,android,math,collision,Java,Android,Math,Collision,我曾试图让自己在Android上工作,但失败了。我的意思是刚体碰撞检测基本上是有一堵墙,玩家一碰到墙,它就无法通过。我试过使用Box2D、Emini引擎、PPhys2D、Phys2D,它们要么没有足够的教程,要么非常复杂。我写这篇文章是为了与我的普通Java游戏一起使用: //package import java.awt.*; import java.awt.event.*; import javax.swing.*; public class DCDE { int plx, ply, obx

我曾试图让自己在Android上工作,但失败了。我的意思是刚体碰撞检测基本上是有一堵墙,玩家一碰到墙,它就无法通过。我试过使用Box2D、Emini引擎、PPhys2D、Phys2D,它们要么没有足够的教程,要么非常复杂。我写这篇文章是为了与我的普通Java游戏一起使用:

//package
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class DCDE {
int plx, ply, obx, oby, obw, obh, plw, plh;
Rectangle north;
Rectangle east;
Rectangle south;
Rectangle west;
boolean debug=true;
public void debug(Graphics g)
{
    Graphics2D g2 = (Graphics2D)g;
    if(debug)
    {
        if(!(north==null)&&!(east==null)&&!(south==null)&&!(west==null)){
            g2.setColor(Color.YELLOW);
            g2.draw(north);
            g2.draw(east);
            g2.draw(south);
            g2.draw(west);
            g2.fill(north);
            g2.fill(east);
            g2.fill(south);
            g2.fill(west);
        }
    }
}
public void detect(int plxj, int plyj, int obxj, int obyj, int obwj, int obhj, int plwj, int plhj)
{
    plx=plxj;
    ply=plyj;
    obx=obxj;
    oby=obyj;
    obw=obwj;
    obh=obhj;
    plw=plwj;
    plh=plhj;
    Rectangle playr = new Rectangle(plx, ply, plw, plh);
    Rectangle objr = new Rectangle(obx, oby, obw, obh);
    north = new Rectangle((obx), (oby-1), obw, 1);
    east = new Rectangle((obx+obw), (oby), 1, obh);
    south = new Rectangle((obx), (oby+obh)+1, obw, 1);
    west = new Rectangle((obx-1), oby, 1, obh);
    if(playr.intersects(north)){
        ply=(oby-plh-1);
        if(debug)System.out.println("NORTH");
    }
    if(playr.intersects(east)){
        plx=(obx+obw+1);
        if(debug)System.out.println("EAST");
    }
    if(playr.intersects(south)){
        ply=(oby+obh+1);
        if(debug)System.out.println("SOUTH");
    }
    if(playr.intersects(west)){
        plx=(obx-plw-1);
        if(debug)System.out.println("WEST");
    }
}
}
这在我制作的计算机java游戏上运行得很好,但是现在我需要上面的东西,但android除外。那么,是否有某种仅仅为碰撞检测而设计的引擎,而不是整个重力的东西,或者是否有一些简单的数学方法我可以使用


提前感谢。

为什么不使用已经在android上运行的图形引擎,比如或。我很抱歉,他们已经有了一些内置的东西,还有一些其他的好东西。

为什么不使用一个已经在android上运行的图形引擎,比如或。我很抱歉,他们已经内置了一些东西以及其他一些不错的东西。

你仍然可以在Android中使用矩形和
intersect()
,只需切换到
Android.graphics.Rect
并将宽度和高度成员转换为左下角即可。或者这不是你想要的?我试过了,它跑得很慢。还有其他方法吗?你可能不会比比较整数更快。你在真正的设备上试过了吗?我问这个问题是因为模拟器上的速度太慢了。我在我的Xperia Play(R800i)@stevehb上试用了它。DCDE方式(如上所述,并针对android进行了优化)是否高效,以及该怎么做?您可以这样做吗?您仍然可以在Android中使用矩形和
intersect()
,只需切换到
Android.graphics.Rect
,并将宽度和高度成员转换为左侧和底部。或者这不是你想要的?我试过了,它跑得很慢。还有其他方法吗?你可能不会比比较整数更快。你在真正的设备上试过了吗?我问这个问题是因为模拟器上的速度太慢了。我在我的Xperia Play(R800i)@stevehb上试用了它。DCDE方式(如上所述,并针对android进行了优化)是否高效,以及该怎么做?你会那样做吗?我是那种真正了解幕后情况的人。你不必学习一点Box2d,但他们的许多例子都涵盖了你想做的事情。我更像是那种真正了解幕后情况的人。+1代表AndEngine。您将不得不学习一点关于Box2d的知识,但他们的许多示例都介绍了您想要做的事情。