Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么我的游戏碰撞检测关闭了500px?_Java_2d_Collision Detection_Collision_Alien - Fatal编程技术网

Java 为什么我的游戏碰撞检测关闭了500px?

Java 为什么我的游戏碰撞检测关闭了500px?,java,2d,collision-detection,collision,alien,Java,2d,Collision Detection,Collision,Alien,我正在做一种类似r型的东西;我制造了宇宙飞船、导弹、外星人,除了碰撞检测,其他一切都在工作。它似乎记录了玩家和敌人之间在500像素左右的碰撞,然后外星人来了,说我输了 Board.java: public void checkCollisions() { Rectangle r1 = al.getBounds(); ArrayList missiles = Craft.getMissiles(); for (int w = 0; w < missiles.size(

我正在做一种类似r型的东西;我制造了宇宙飞船、导弹、外星人,除了碰撞检测,其他一切都在工作。它似乎记录了玩家和敌人之间在500像素左右的碰撞,然后外星人来了,说我输了

Board.java:

public void checkCollisions() {
    Rectangle r1 = al.getBounds();
    ArrayList missiles = Craft.getMissiles();
    for (int w = 0; w < missiles.size(); w++)
    {
         Missile m = (Missile) missiles.get(w);
         Rectangle m1 = m.getRect();
         if (r1.intersects (m1) && al.Alive()) {
             al.isAlive = false;
             m.visible = false;
         }

    }

    Rectangle c = p.getBounds();
    if (c.intersects(r1)) {
        lost = true;
    }
java:

public Rectangle getBounds() {
    return new Rectangle(x, y, width, height);
}

正如我所说的-导弹工作得很好,但是飞船和外星人之间的碰撞检测在
x=458
中进行检测,而它应该在1100-1200之间进行检测。

看起来你正在创建坐标不好的矩形对象。使用
System.out.println(字符串s)
打印创建矩形时使用的坐标,并检查它们是否正确

我怀疑玩家的矩形坐标不好,因为正如你所说,导弹工作正常


你能把你游戏的全部代码寄给我吗?我想试试…

看起来您正在创建坐标不正确的矩形对象。使用
System.out.println(字符串s)
打印创建矩形时使用的坐标,并检查它们是否正确

我怀疑玩家的矩形坐标不好,因为正如你所说,导弹工作正常


你能把游戏的完整代码发给我吗?我想尝试一下…

“你能帮我吗?”-如果你没有提供任何关于问题/碰撞检测算法/的有用信息,就不可以。如果你提供了一些代码,可能有人会帮你。老实说,在没有看到您的代码的情况下,您如何实际地期望得到任何答案。“您能帮助我吗?”-如果您没有提供任何关于您的问题/碰撞检测算法/的有用信息,则不会。如果您提供了一些代码,可能会有人能够提供帮助。老实说,在没有看到您的代码的情况下,您怎么能现实地期望得到任何答案呢。
public Rectangle getBounds() {
    return new Rectangle(x, y, width, height);
}