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 は、クラスの作成時に一度設定され、その後は変更されません。では、なぜこれが起こっているのですか?