0

load と呼ばれるゲームプレイを制御するクラスにブール値があります。ユーザーがメイン メニューで [NEW] をクリックすると、クラスが作成され、load が 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() を出力します。これは、常に true または false のいずれかであり、常に false です。

これは非常に基本的な Java であり、メソッド isLoad() が 1 秒以内に呼び出されたときに変化する理由がわかりません。Load は、クラスの作成時に一度設定され、その後は変更されません。では、なぜこれが起こっているのですか?

4

0 に答える 0