得分计数器显示/动画显示“向上计数”

时间:2015-12-31 22:05:41

标签: java increment game-development

我正在尝试创建一个分数计数器的视觉表示,计算到玩家的分数,以达到“复古”的感觉。我把计数器设置得很好,以显示玩家的分数。我遇到的麻烦是“计数”表示。我在S / O周围搜索,希望能找到类似的东西,但是,也许是因为我搜索的措辞,我没有任何运气。

public class ScoreCounter {
  private Font font = null;
  private int width = 0;
  private long score = 0, targetScore = 0;

  public void setFont(Font newFont) {
    font = newFont;
  }

  public void increment(int increment) {
    for (int i = increment; 0 < i; i--) {
      score++;
    }
  }

  public void paint(Graphics g) {
    g.setFont(font.deriveFont(Font.PLAIN, 30));
    g.setColor(Color.WHITE);
    width = g.getFontMetrics().stringWidth(Long.toString(score));
    g.drawString(Long.toString(score), 764 - width, 30);
  }
}

1 个答案:

答案 0 :(得分:0)

你的游戏应该有一个循环的概念&#39; IE:一个框架。您应该拥有一个函数,该函数包含在每个周期调用的函数列表中。为你计算新值。

public void calculateScore()
  {
    newScore = previousScore + SCORE_PER_CYCLE_ADDED;
    // then you add in the scores from 'whatever' they did in that cycle
    // such as killing enemies
    for(Enemy defeatedEnemy: EnemiesDefeatedThisCycle){
          newScore += defeatedEnemy.getScoreValue();
    }
    // collected points items
    for(Item itemCollected: CollectedItemsThisCycle){
          newScore += itemCollected.getScoreValue();
    }
}

然后在其他地方,您可以在GUI上更新玩家每帧的新分数。