greenfoot IDE でスコアを出力しようとしていますが、印刷しようとするまですべて正常に動作しています (スコアが増加しています)。印刷しようとすると、何らかの理由でゼロに変わります。
カニのクラス:
public class Crab extends Animal
{
int health = 10;
int score = 0;
public void act()
{
score = score + 1;
System.out.println(score);
//JOptionPane.showMessageDialog(null, newscore, "You lose!", JOptionPane.WARNING_MESSAGE);
if (Greenfoot.isKeyDown("Left"))
{
turn(-3);
}
if (Greenfoot.isKeyDown("Right"))
{
turn(3);
}
if (canSee(Worm.class))
{
eat(Worm.class);
}
move();
healthBar();
}
public void healthBar()
{
if (atWorldEdge())
{
Greenfoot.playSound("pew.wav");
move(-20);
turn(180);
health = health - 1;
}
if (health <= 0)
{
Message msgObject = new Message();
msgObject.youLose();
Greenfoot.stop();
}
}
}
メッセージ クラス:
public class Message extends Crab
{
/**
* Act - do whatever the Message wants to do. This method is called whenever
* the 'Act' or 'Run' button gets pressed in the environment.
*/
public void youLose()
{
JOptionPane.showMessageDialog(null, "Try again next time. Your score was " + score, "You lose!", JOptionPane.WARNING_MESSAGE);
}
}
act メソッドでスコアを印刷しようとすると、スコアが増加していることがわかりますJOptionPane
が、プログラムの最後に、または通常どおりに印刷すると、0 になります。
例: