私は現在、以前のオブジェクトが真を返すブール変数の条件を満たすと、新しいオブジェクトを生成するプログラムを書いています。私が抱えている問題は、私は複数の異なる形で作業しているということです。このプログラムは、第2のタイプの形状が表示されるまで完全に機能する。その時点で、boolean isDone()条件を満たす2つの図形があります。ブール変数をfalse /そのデフォルト条件に戻す簡単な方法はありますか?Javaのブール変数をリセットする
コード:
if (baserectangle.isDone()) {
int meowchoice = (int) Math.round(2 * Math.random());
if (meowchoice < 1) {
baserectangle = (new Rectangle(10, 25, position, m, n));
scene1.add(baserectangle);
}
if (meowchoice >= 1) {
basesquare = (new Square(10, 25, position, m, n));
scene1.add(basesquare);
}}
else if (basesquare.isDone()) {
int meowchoice2 = (int) Math.round(2 * Math.random());
if (meowchoice2 < 1) {
baserectangle = (new Rectangle(10, 25, position, m, n));
scene1.add(baserectangle);
}
if (meowchoice2 >= 1) {
basesquare = (new Square(10, 25, position, m, n));
scene1.add(basesquare);
}
}
即ちプログラムがbaserectangle又はbasesquareで始まり、その形状は、そのisDoneの条件を満たしたときに、ランダムに新しいbaserectangle又はbasesquareを生成します。問題は、ベースレクタングルとベーススクエアの両方が存在すると、一度に複数のシェイプを連続的に生成することです。
isDone()の実装:
public boolean isDone() {
if (this.y < 2) {
return true;
}
if (i > 0 && position [i-1][j] != 0) {
return true;
}
else return false;
}
this.y Yは平面上の図形の座標であり、iおよびjは、アレイ内のオブジェクトの位置です。
あなたはたとえばalreadyDone
のために、あなたのクラスで別のvariabileを入れて、それは例えば、他の形状を生成することがあるかどうかを決定するためにそれを使用することができ
フィールドは静的ですか? – Makoto
静的なのは、図形の色だけです。 xとyの座標は、位置配列内の位置が変わるのと同じように変化します。 – JavaStudent90000
'isDone'を支配するものは?あなたはそれの実装を含めることができますか? – Makoto