gpt4 book ai didi

java - 用 greenfoot 打印分数计数器。输出零

转载 作者:行者123 更新时间:2023-12-01 11:54:39 25 4
gpt4 key购买 nike

我正在尝试在 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。

示例:

/image/mZGOX.png

最佳答案

您正在创建一个全新的对象来调用您的 youLose() 方法。通过这样做,您的分数计数器将再次设置为零。您可以尝试通过为 Message 创建一个允许传递分数的新构造函数来解决此问题。

public Message(int score) {
this.score = score;
}

PS:我不明白为什么让你的 Message 类继承自 Crab 会有用

关于java - 用 greenfoot 打印分数计数器。输出零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28536252/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com