我有一种方法可以写出剩下多少猜测,并且我希望每次人们错过字母或单词时都要重新绘制,但是它会一直重新绘制,这会导致整个程序不断闪烁。
我的方法如下:
public void repaintWord(Graphics g){
g.SetColor(Color.RED);
g.drawString("You have " + getN() + " guesses left", 400, 50);
repaint();
}
当getN()更改其值时,如何仅重画一次?
答案 0 :(得分: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();
}
}
答案 1 :(得分:2)
将lastGuessCount
存储为成员变量:
bad 猜测:
lastGuessCount--;
然后使用:
if (getN() != lastGuessCount) {
repaintWord(g);
}