"counting up" shown/animated 计分器
Score counter with the "counting up" shown/animated
我正在尝试创建一个计分器的可视化表示来计算玩家的分数,以达到 "retro" 的感觉。为了显示玩家的分数,我对计数器进行了很好的编程。我遇到的问题是 "counting up" 表示。我在 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);
}
}
您的游戏应该具有一些 'a cycle' IE 的概念:框架。您应该有一个包含在 'list of functions to call per cycle' 中的函数,可以为您计算新值。
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 上更新玩家每帧的新分数。
我正在尝试创建一个计分器的可视化表示来计算玩家的分数,以达到 "retro" 的感觉。为了显示玩家的分数,我对计数器进行了很好的编程。我遇到的问题是 "counting up" 表示。我在 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);
}
}
您的游戏应该具有一些 'a cycle' IE 的概念:框架。您应该有一个包含在 'list of functions to call per cycle' 中的函数,可以为您计算新值。
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 上更新玩家每帧的新分数。