我刚将Eclipse项目导出到可运行的jar文件中。我在Eclipse中运行时没有滞后问题,但在jar中运行它时会出现极端延迟。 (运行MacOSX 10.9.4)
根据我的FPS计数器,我每秒获得超过900帧,游戏实际上正在运行,但实际上没有任何内容正在渲染。
不确定要显示哪些代码,因为它有很多,因为它是一个几乎完成的游戏。但请告诉我您可能需要的代码。
这是我的游戏循环:
public void run() {
long start = System.nanoTime();
final double numUpdates = 30.0;
double ns = 1000000000 / numUpdates;
double delta = 0;
int updates = 0;
int frames = 0;
long timer = System.currentTimeMillis();
while(running) {
long current = System.nanoTime();
delta += (current - start) / ns;
start = current;
if(delta >= 1) {
update();
updates++;
delta--;
}
render();
frames++;
if(System.currentTimeMillis() - timer > 1000) {
timer = System.currentTimeMillis();
Window.frame.setTitle("Rage Mage UPS: " + updates + ", FPS: " + frames);
updates = 0;
frames = 0;
}
}
}
render()
方法:
private void render() {
statusHandler.render(g); // statusHandler is a class that handles the current state of the game
Graphics g2 = getGraphics();
g2.drawImage(image, 0, 0, WIDTH * SCALE, HEIGHT * SCALE, null);
}
我认为游戏循环不是问题,因为我之前遇到了不同的循环问题,然后我改为循环,没有任何改变。
谢谢!