Java 碰撞检测Libgdx矩形

Java 碰撞检测Libgdx矩形,java,eclipse,libgdx,game-physics,Java,Eclipse,Libgdx,Game Physics,我试图在我的游戏中使用矩形来实现碰撞检测,但似乎无法让它工作 每帧按空格键时,项目符号都会更新,以便在屏幕上移动。显然,我在这里被告知,碰撞盒也会随之移动。我是通过使用sprite.getBoundingBox()来获得这个值的,它为每个实例设置一个数据域矩形 我有两个数组列表,一个包含怪物实例,一个包含子弹实例。它们都有与之关联的碰撞矩形 只要子弹或怪物数组列表中有东西,我就会在每一帧的主渲染循环中调用checkCollisions()方法 /*this handles collisions

我试图在我的游戏中使用矩形来实现碰撞检测,但似乎无法让它工作

每帧按空格键时,项目符号都会更新,以便在屏幕上移动。显然,我在这里被告知,碰撞盒也会随之移动。我是通过使用
sprite.getBoundingBox()
来获得这个值的,它为每个实例设置一个数据域矩形

我有两个数组列表,一个包含怪物实例,一个包含子弹实例。它们都有与之关联的碰撞矩形

只要子弹或怪物数组列表中有东西,我就会在每一帧的主渲染循环中调用
checkCollisions()
方法

/*this handles collisions between bullets and enemies*/
public static void checkCollisions(){
    for (int i = 0; i < Main.currentBullets.size(); i++){
        for (int k = 0; k < Main.currentMonsters.size(); k++){
            if (Intersector.overlaps(Main.currentBullets.get(i).collisionBoxBullet,
                  Main.currentMonsters.get(k).collisionBoxMonster)){
                     System.out.println("Boom headshot");
                }
        }
    }
/*处理子弹和敌人之间的碰撞*/
公共静态无效检查冲突(){
对于(int i=0;i
这不应该在每次重叠时都出现繁荣的头像吗?相反,它似乎总是在不断评估为真


为什么它不断求值为true并写入boom headshot?

我没有做的是将精灵矩形的位置设置为0.0。然后,我也没有使用
collisionBox.setPosition()
正确移动碰撞框


它首先检查0/0处的精灵是否与0.0处的碰撞框发生碰撞,这始终为真,因此总是说它重叠。

方法
sprite.getBoundingRectangle()
确实为
精灵创建了一个
边框
。这意味着,当您移动
精灵
时,它不是一个更新的引用。因此,要使
collisionBoxBullet
collisionBoxMonster
保持最新,您需要调用
Sprite.getBoundingRectangle
每帧.Also确保
子弹
s和
怪物
s不会太快,这样它们就不会“穿越”彼此!非常感谢,我每次都在更新边界矩形,但它仍然总是说“爆炸头”和求值为真。如果条件求值为真,为什么会出现这种情况?这很难说……在
if
-条件之前尝试
System.out.println()
,然后打印出2个
碰撞框。然后显示一些检查的结果,而不是一个检查的结果。