如何根据java中的fps使我的游戏不加速/减速



因此,当我运行正在运行的游戏时,FPS会忽高忽低。但比赛时间也是如此。帧速率越高,移动速度越快。fps越低,移动越慢。我使用的是延迟10ms的javax.swing.Timer类和个性化的ActionListener类。有人知道如何摆脱这些时间难题吗?像Unity的Time.deltaTime这样的东西会很完美,因为我已经习惯了。

ActionListener类中记录时间:

class MyActionListener implements ActionListener {
private long previousStartTime = -1;

@Override
public void actionPerformed(ActionEvent e) {
long now = System.currentTimeMillis();
long elapsedTime = previousStartTime != -1 ? now - previousStartTime : 0;
previousStartTime = now;

// use elapsedTime
// e.g.
double pixelsToMove = speedPerMs * elapsedTime;
}
}

在第一次迭代中,elapsedTime将为零。

最新更新