我正在研究用Java开发的游戏,并且在我的Render方法中出现了一个问题。
当我使用如下简单代码调用render方法时:
public void render() {
Graphics2D g = (Graphics2D) bufferStrategy.getDrawGraphics();
g.setColor(Color.black);
g.fillRect(0, 0, mainWindow.getWidth(), mainWindow.getHeight());
onRender(g);
g.dispose();
bufferStrategy.show();
}
并将一个简单的cicle渲染成红色
但我的netbeans和我的电脑变得非常非常慢。
当我在Debian终端输入top时,我可以看到我的cpu使用在" Java"申请量增加了100%。
我不知道为什么。有人能告诉我我做错了什么吗?
答案 0 :(得分:1)
在渲染/更新周期之间添加一个小延迟,以便给出cpu时间来处理你尝试做的事情,使用像Thread.sleep(40)
(25fps)那样的假设...假设有' sa在某处更新循环...
另请参阅BufferStrategy
JavaDocs,它有一个如何使用它的简单示例(不包括小延迟)