好吧,我正在制作一个小游戏,我需要限制我的 FPS,因为当我在我非常快的电脑上玩时,我有大约 850 FPS,游戏会非常快,当我切换到我的旧电脑,它运行得更慢,所以我需要限制我的 FPS 才能做到这一点。如何限制我的 FPS? 我的主要游戏循环:
public void startGame(){
initialize();
while(true){
drawScreen();
drawBuffer();
plyMove();
//FPS counter
now=System.currentTimeMillis();
framesCount++;
if(now-framesTimer>1000){
framesTimer=now;
framesCountAvg=framesCount;
framesCount=0;
}
try{
Thread.sleep(14);
}catch(Exception ex){}
}
}
我如何绘制屏幕,以及绘制所有其他东西、球员、球等。 顺便说一下,该游戏是乒乓球翻拍游戏。
public void drawBuffer(){
Graphics2D g = buffer.createGraphics();
g.setColor(Color.BLACK);
g.fillRect(0,0,600,500);
g.setColor(Color.GREEN);
g.fillRect(ply1.getX(),ply1.getY(),ply1.getWidth(),ply1.getHeight());
g.setColor(Color.RED);
g.fillRect(ply2.getX(),ply2.getY(),ply2.getWidth(),ply2.getHeight());
g.setColor(Color.WHITE);
g.fillOval(ball1.getX(),ball1.getY(),ball1.getWidth(),ball1.getHeight());
g.drawString("" + framesCountAvg,10,10);
}
public void drawScreen(){
Graphics2D g = (Graphics2D)this.getGraphics();
g.drawImage(buffer,0,0,this);
Toolkit.getDefaultToolkit().sync();
g.dispose();
}
最佳答案
听起来您的显示器与您的游戏引擎相关联。确保两者断开连接。无论帧率是多少,您都希望游戏以相同的速度播放。如果您的快速计算机重新绘制屏幕的速度更快,如果引擎导致游戏以恒定速度运行,那是可以的。
关于java - 限制我的游戏的 FPS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6217663/