Java .相交总是返回真值?

Java .相交总是返回真值?,java,lwjgl,slick2d,Java,Lwjgl,Slick2d,我一直在开发一款混合了awt和slick2d的游戏(渲染是通过awt完成的)。不管怎样,我遇到了碰撞的问题。在实体类内部,我有一个碰撞方法: public boolean colidesWithWall(int idx, int idy) { //if(Level.solid) wall = new Rectangle(idx, idy, Tile.Size, Tile.Size); if (this.getBoundingBox() == null) {

我一直在开发一款混合了awt和slick2d的游戏(渲染是通过awt完成的)。不管怎样,我遇到了碰撞的问题。在实体类内部,我有一个碰撞方法:

public boolean colidesWithWall(int idx, int idy) {
    //if(Level.solid)
    wall = new Rectangle(idx, idy, Tile.Size, Tile.Size);
    if (this.getBoundingBox() == null) {
        return false;
    }
    return this.getBoundingBox().intersects(wall);


}
除此之外,在我的“Core.java”文件中,我有一个for循环,通过colidesWithWall方法迭代tiles。我这里还有一个if语句,所以它只会检查碰撞层上的平铺。(我的地图有四层,背景,碰撞,物品和敌人)

rouge.oY和rouge.oX是我的相机偏移量

瓷砖。大小是我的瓷砖的大小:32

以下是发生的情况的屏幕截图:


灰色的瓷砖和树木应该会引起碰撞,而棕色的瓷砖则不会

这是我为比赛准备的东西。我希望它能对你有所帮助,因为我不知道我能如何帮助你

获取玩家的边界:

private static Rectangle getPlayerBounds() {
    return new Rectangle((int)player.getPositionX(), (int)player.getPositionY(), playerTexture.getImageWidth(), playerTexture.getImageHeight());
}
private static Rectangle getEnemyBounds(Enemy e) {
    return new Rectangle(e.getEnemyPosX(), e.getEnemyPosY(), enemyTexture.getImageWidth(), enemyTexture.getImageHeight());
}
获取实体(在我的例子中是敌人)的边界:

private static Rectangle getPlayerBounds() {
    return new Rectangle((int)player.getPositionX(), (int)player.getPositionY(), playerTexture.getImageWidth(), playerTexture.getImageHeight());
}
private static Rectangle getEnemyBounds(Enemy e) {
    return new Rectangle(e.getEnemyPosX(), e.getEnemyPosY(), enemyTexture.getImageWidth(), enemyTexture.getImageHeight());
}
然后我有我的支票()


与这个问题无关,但是当您有一个名为
敌方
的类时,为什么在诸如
getEnemyPosX()
之类的函数中使用重复的单词呢。阅读
e.getPosX()
不是更容易吗?这是它最初在另一个类中的遗留名称。
public static void checkCollisions() {
     for(int i = 0; i < getEnemyList().size(); i++) {

        Enemy tempEnemy = getEnemyList().get(i);

        if (getPlayerBounds().intersects(getEnemyBounds(tempEnemy))) {
            getEnemyList().remove(tempEnemy);
        }
    }
}
    MovementChecks.checkCollisions();