如何让我的游戏速度不降低 up/slow 取决于 java 中的 fps?
How do i make my game not speed up/slow down depending on the fps in java?
所以当我 运行 正在开发一款游戏时,FPS 会上下波动。但是游戏时间也会如此。更多 fps,更快的移动。更少的 fps,更慢的运动。我正在使用具有 10 毫秒延迟和个性化 ActionListener class 的 javax.swing.Timer class。有谁知道如何摆脱这些时间难题?像 Unity 的 Time.deltaTime 这样的东西会很完美,因为我已经习惯了。
在你的 ActionListener
class 中记录时间:
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
将为零。
所以当我 运行 正在开发一款游戏时,FPS 会上下波动。但是游戏时间也会如此。更多 fps,更快的移动。更少的 fps,更慢的运动。我正在使用具有 10 毫秒延迟和个性化 ActionListener class 的 javax.swing.Timer class。有谁知道如何摆脱这些时间难题?像 Unity 的 Time.deltaTime 这样的东西会很完美,因为我已经习惯了。
在你的 ActionListener
class 中记录时间:
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
将为零。