Java游戏的滞后

时间:2011-09-27 22:00:11

标签: java multithreading awt lag

我正在用Java编写游戏。哦,不知道,我有性能问题。我对油漆本身进行了基准测试 - 在3毫秒的顶部进行了1000次循环。游戏逻辑甚至低于这个。到现在为止还挺好。但我仍然遇到一个烦人的滞后:滚动时,缩放时,点击时。当我放大并放置更多物体时,问题变得更糟。但是仍然 - 即使我将绘画循环1000次,滞后也大致相同,所以不能这样。 我尝试将循环放在一个任务中 - 仍然是相同的。我试图在涂料之间暂停任务 - 仍然是一样的。 动画像丝绸一样平滑(因为帧速率稳定且高,这是有道理的)。那么我究竟如何有条不紊地组织投入呢?把它们全部放在一个单独的线程中? 任何意见都会非常感激!

1 个答案:

答案 0 :(得分:9)

听起来你正在使用Swing Event Dispatch Thread直接使用侦听器回调,在那里进行UI更新。您应该使用命令队列,并在调用回调时将事件放在队列中,具有该命令的性质,然后您在与EDT无关的主游戏更新循环中使用它。