布尔值始终为true,即使为false

时间:2019-11-07 18:44:43

标签: java

我一直在编程一个基本的游戏引擎,该引擎为地图创建2D布尔数组。我正在尝试生成墙以阻止玩家进入不存在的房间。

理想情况下,当在“地图” 2d数组中检测到相邻的真布尔值时,应在各自的Room中删除连接2个真房间的墙(对象由2d整数数组组成,该数组在数组中称为“结构” “地板”。

我添加了System.out.println()行以检查布尔值,以防万一我错误地为它们分配了所有真实值,但事实并非如此。它们在正确与错误之间应有的不同,但是尽管如此,它们都被评估为真实,因此根本没有隔离墙。

public static Room[][] genWalls(Room[][] floor) {
    for (int i = 0; i < floor.length; i++) {
        for (int j = 0; j < floor[0].length; j++) {
            if (Game.map[i][j]) {
                if (i - 1 > 0) {
                    System.out.println(Game.map[i][j - 1]);
                    if (Game.map[i][j - 1]) {
                        floor[i][j].structure[5][1] = 0;
                        floor[i][j].structure[6][1] = 0;
                        floor[i][j].structure[7][1] = 0;
                    }
                }

预计genWalls方法的这一部分将删除相应楼层的int [] []“结构”中最左边的墙,并且包括上述打印故障保护。

如前所述,某些布尔值为true,有些为false,但是它们都通过if运算符传递。

0 个答案:

没有答案