1

我有一个方法可以写出还有多少猜测,我希望每次人们错过字母或单词时都重新绘制它,但是它一直在重新绘制自己,这会导致整个程序不断闪烁。

我的方法如下所示:

public void repaintWord(Graphics g){
    g.SetColor(Color.RED);
    g.drawString("You have " + getN() + " guesses left", 400, 50);
    repaint();
}

当 getN() 更改其值时,如何使其仅重绘一次?

4

2 回答 2

5

存储上次退出时间的值getN()repaintWord()getN()入口比较:

private int lastN = ??; /* Value for max guesses. */

public void repaintWord(Graphics g)
{
    if (lastN != getN())
    {
        lastN = getN();
        g.SetColor(Color.RED);
        g.drawString("You have " + lastN + " guesses left", 400, 50);
        repaint();
    }
}
于 2012-08-16T21:48:42.297 回答
2

存储lastGuessCount为成员变量:

猜错

lastGuessCount--;

然后使用:

if (getN() != lastGuessCount) {
    repaintWord(g);
}
于 2012-08-16T21:49:29.750 回答