我相信完成这个项目的最好方法是定期绘制场景,例如 10 毫秒使用Thread.sleep()
. 这样,您可以简单地添加一个变量来显示消息,例如 100 个循环(1 秒),如下所示:
private LinkedList<String> drawStringList= new LinkedList<>();
private LinkedList<Integer> drawStringTimeout= new LinkedList<>();
private LinkedList<Integer[]> drawStringPos= new LinkedList<>();
public void addText(String stringToWrite, int posX, int posY, int timeOut) {
drawStringList.add(stringToWrite);
int[] pos = new int[2];
pos[0] = posX;
pos[1] = posY;
drawStringPos.add(pos);
drawStringTimeout.add(timeOut);
}
private void mainLoop() {
...items to be drawn here...
for(int i=0;i<drawStringList.size();i++){
g.drawString(drawStringList.get(i),drawStringPos.get(i)[0],drawStringPos.get(i)[1]);
drawStringTimeout.set(i,drawStringTimeout.get(i)-1);
if(drawStringTimeout.get(i)<=0) {
drawStringList.remove(i);
drawStringTimeout.remove(i);
drawStringPos.remove(i);
}
}
try { Thread.sleep(10); } catch (Exception e) {}
}
在此代码中,您必须添加要绘制的字符串drawStringList
,添加您希望它停留的循环数,并将您想要将其绘制到drawStringTimeout
的位置添加drawStringPos
为数组(如果您可以使用点想要)。我已经做了一个方法来做到这一点。