私は他のすべての質問を調べてきましたが、私の問題に対する答えが見つからないようです:非静的フィールド(作成するオブジェクトごとに個別)を使用する必要があり、別の変数でその変数にアクセスする必要がありますクラス。コードの一部: (Enemytank.java)
public class Enemytank extends MoveableGameItem implements IStepListener, IAlarmListener
{
private Battlefield mygame;
private Enemytank enemyTank1;
private static int enemyWaveSize = 1;
private static int remainingKills = enemyWaveSize;
private static double startupEnemyHealth = 100.00;
private double enemyHealth = startupEnemyHealth;
public int enemyStage = 0;
/**
* Constructor.
*/
public Enemytank(Battlefield mg)
{
mygame = mg;
setImage("/images/enemytank.png", 27, 33);
setPosition(25, 35);
// snelheid 5, naar rechts
setDirectionSpeed(0, 4);
startMoving();
mygame.addStepListener(this);
}
}
そして、変数enemyStageが必要なクラス:(Playertank.java)
public void collisionOccured(GameItem collidedItem)
{
Enemytank enemyTank1 = new Enemytank(mygame);
System.out.println("pt= " + enemyTank1.getEnemyStage());
if ((collidedItem instanceof Enemytank) && (playerShields > 0) && (enemyTank1.getEnemyStage() != 3))
{
this.playerShields--;
mygame.setShieldsonDashboard(playerShields);
}
else if ((collidedItem instanceof Enemytank) && (playerShields <= 0) && (enemyTank1.getEnemyStage() != 3))
{
System.out.println("hit player!");
this.playerLives--;
mygame.setLivesonDashboard(playerLives);
}
if (collidedItem instanceof Shield)
{
this.playerShields++;
mygame.setShieldsonDashboard(playerShields);
mygame.deleteGameItem(collidedItem);
this.playerUpgrades();
}
}
私が今、enemyTank1.getEnemyStage() から得た値は 0です。. 既存のオブジェクトを参照して、その特定の値を取得するにはどうすればよいですか? モンスターが死んでいるか、ほぼ死んでいるかどうかを確認するには、enemyStage を使用します。
事前にThx :)炎