我正在尝试创建一个分数计数器的视觉表示,计算到玩家的分数,以达到“复古”的感觉。我把计数器设置得很好,以显示玩家的分数。我遇到的麻烦是“计数”表示。我在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);
}
}
答案 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上更新玩家每帧的新分数。