添加计分功能

时间:2019-05-16 12:52:23

标签: java greenfoot

我需要在顶部添加某种分数,但不确定如何。

我尝试使用一些功能并移动计分功能,但是我没有合适的计分器。

这是用户播放器类:

Score myInt = new Score();
myInt.score();
if(Pig != null)
{
    World farm;
    farm = getWorld();
    farm.removeObject(Pig);
}
if(Sheep != null)
{
    World farm;
    farm = getWorld();
    farm.removeObject(Sheep);
}
if(Bonus != null)
{
    World farm;
    farm = getWorld();
    farm.removeObject(Bonus);
}

这是Score类中的得分方法:

public void score()
{
        int score = 0;
}

我还没有得分,但是我希望猪为1分,绵羊为3分,奖金为10分,随着游戏的进行和移动,吃东西,应该得到相应的分数。这些点应该进入int分数对象,但是分数不会显示在第一个代码中。

1 个答案:

答案 0 :(得分:0)

嘿,看来您仍在与Java基本概念作斗争。但我认为您正在尝试执行以下操作。您可以使用三种类型将分数添加到得分对象。在Java和其他面向对象的语言中,通常将使用baseClass或Interface处理此类行为。在这种情况下,例如接口ScoreAble:

 interface ScoreAble {
    int score();
}

您的三个类PigSheepBonus将实现此接口:

public class Bonus implements ScoreAble {
  public int score() {
    return 10;
  }
}

public class Sheep implements ScoreAble {
  public int score() {
    return 3;
  }
}

public class Pig implements ScoreAble {
  public int score() {
    return 1;
  }
}

我建议您更改

public void score()
{
      private int score = 0;
}

public class Score {
  int score = 0;

  public void addScore(ScoreAble scoreAble) {
    this.score += scoreAble.score();
  }

  public void addScore(int i) {
    this.score += i;
  }

  public void lowerScore(int i) {
    this.score -= i;
   }

  public int getScore() {
    return this.score;
  }

  public void setScore(int score) {
    this.score = score;
  }
}

我不知道您的World班级如何,但我建议添加以下几行:

class World {
  private List<ScoreAble> scoreAbles = new ArrayList<>();
  public List<ScoreAble> getScoreAbles() {
    return this.scoreAbles;
  }

  public void setScoreAbles(List<ScoreAble> scoreAbles) {
    this.scoreAbles = scoreAbles;
  }

 public void addScoreAble(ScoreAble scoreAble) {
  this.scoreAbles.add(scoreAble);

  }
}

您现在可以将得分添加代码更改为:


World farm = getWorld();
for (ScoreAble scoreAble : farm.getScoreAbles()) {
      score.addScore(scoreAble);
      farm.removeObject(scoreAble)
    }
farm.getScoreAbles().clear();

我对绿脚不熟悉,因此,如果某事不起作用或不清楚,请不要害怕