0

我正在用java开发一个落块游戏,你必须在屏幕上移动玩家来躲避块。每当你被一个方块击中时,根据方块的类型,它会减少或增加玩家类中的 int。我遇到的问题是,当玩家被方块击中时,int 会不断下降,直到现在不可见的方块离开屏幕。基本上我只需要一种方法来检查对象数组,当对象满足指定条件(例如(delete == true))时,它将将该块在数组中的当前位置设置为空。

块位置更新方法:

public void dropFoods(int speed) {
    for (int x = 699 - speed; x >= 0; x--) {
        for (int y = 0; y < 7; y++) {
            if(x > (699 - GUI.HEIGHT) - 10) {
                food[y][x] = null;
                continue;
            }
            food[y][x + speed] = food[y][x];
            food[y][x] = null;

        }
    }
}

积木的绘制方法(食物是不同类型的积木):

for(int x = 0; x < food.length; x++) {
            for(int y = 0; y < food[x].length; y ++) {
                Object o = food[x][y];
                if(o instanceof Apple) {
                    new Apple(x * 100, y - Apple.HEIGHT, g);            
                }
                if(o instanceof Burger) {
                    new Burger(x * 100, y - Burger.HEIGHT, g);          
                }
            }
}

检测与玩家碰撞的方法:

if(Food.getHitBox().intersects(Player.hitBox())) {
        willDraw = false;
        Player.weight -= 1;
}
4

1 回答 1

0

您应该首先提供更多代码和调试结果。

if(Food.getHitBox().intersects(Player.hitBox())) {
        willDraw = false;
        Player.weight -= 1;
}

所以当玩家击中某物时,你会从地图上移除 Food 对象吗?因为根据这段代码,你不是。

于 2013-01-26T22:20:26.063 回答