来自同一方法的布尔不一致

时间:2013-05-02 00:29:09

标签: java android methods boolean

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

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

布尔'load'在此代码所在方法的构造函数中。无论如何,这里是我的GameScene类中'load'的初始化:

    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()在瞬间调用时会有所不同。在创建类时,加载设置一次,之后不再触及。那为什么会这样呢?

0 个答案:

没有答案