0

我在一个控制游戏玩法的类中有一个布尔值,称为负载。如果用户在主菜单上单击“新建”,则会创建类,并且加载设置为 false,因此游戏不会加载保存,反之亦然。这是创建类和设置负载的方式:

GameScene gameScene = new GameScene();
gameScene.setLoad(load);
System.out.println("LOAD SET TO"+load);
setScene(gameScene);

布尔值“加载”在此代码所在方法的构造函数中。无论如何,这是我的 GameScene 类中“加载”的初始化:

    public boolean load;

这是它的设置器:

public void setLoad(boolean load) {
     this.load = load;
}

及其吸气剂:

public boolean isLoad() {
    return load;
}

这非常简单,而且似乎可以正常工作。然而,事实并非如此。我有这个连续运行:

System.out.println(isLoad());

现在,这准确地显示了布尔值。但不一致的地方是我从 XML 文件加载关卡的方法。这是其中的一部分:

else if ((type
                            .equals(TAG_ENTITY_ATTRIBUTE_TYPE_VALUE_NPC))
                            && !(isLoad())) {
                        npc = new NPC(x, y, vbom, physicsWorld) {
                        };
                        levelObject = npc;
                        System.out.println("Load is: "+isLoad());

看起来,无论负载是什么,它都会运行。每次都调用它并打印 isLoad(),它在整个过程中以某种方式要么是真要么是假的,总是假的。

这是非常基本的 java,我不知道为什么方法 isLoad() 在瞬间调用时会发生变化。负载在创建类时设置一次,之后不再触及。那么为什么会这样呢?

4

0 回答 0