如何在Java中设置一段时间后消除String / Image

时间:2014-05-13 05:02:44

标签: java graphics slick2d

我只是想知道是否有办法让一个String对象(g.drawString(...))或一个Image(g.drawImage(...))在设定的时间后消失它已被渲染到屏幕上。我正在用Java编写一个游戏,并且希望在游戏开始很短的时间后显示一条欢迎信息,如10-20秒。我正在使用Slick2D游戏库,它是lwjgl库的一个包装器,用于一些背景。我似乎无法在此网站或其他论坛上找到解决方案,例如Java文档。如果我错过了已经记录的解决方案,那么我为时间腰部道歉,但是希望能够找到解决方案的链接。我已经尝试实现了一个while循环和一个计数器,看看它是否会起作用但是渲染方法是如何工作的,它运行得太快或导致游戏挂起或在进入播放状态之前运行循环从主菜单。我猜这个解决方案无法工作或效率高,因为渲染方法每秒运行数百次,以在屏幕上显示完美无瑕的图像。

tl; dr

我想知道如何将Graphics对象渲染到屏幕上,停留几秒钟,然后从屏幕上消失。感谢您的任何反馈,感谢您的阅读!

1 个答案:

答案 0 :(得分:0)

使用计数器。传递给update方法的delta表示帧之间的时间(以毫秒为单位)。每帧都将它添加到你的柜台。渲染时,在渲染之前检查计时器是否小于某个值。

int time = 0;
int duration = 1000;

// in update():
time += delta;


// in render():
if (time<duration) {
    g.drawImage(/* image here */);
}

这会吸引一秒钟。