Java2D不稳定增量时间

Java2D不稳定增量时间,java,2d,Java,2d,所以我想用delta时间运行我的新游戏,但问题是delta太不稳定了。这意味着它通常会输出8到11之间的数字,这是好的,但有时会输出-4000或5000以上的数字。但是屏幕每10毫秒更新一次。。。我不知道这是怎么发生的 setEndTime((int) System.nanoTime() / 1000000); setDelta(getEndTime() - getStartTime()); setStartTime(getEndTime()); 只是因为javas T

所以我想用delta时间运行我的新游戏,但问题是delta太不稳定了。这意味着它通常会输出8到11之间的数字,这是好的,但有时会输出-4000或5000以上的数字。但是屏幕每10毫秒更新一次。。。我不知道这是怎么发生的

setEndTime((int) System.nanoTime() / 1000000);
            setDelta(getEndTime() - getStartTime());
setStartTime(getEndTime());
只是因为javas Timer类不精确吗?

System.nanoTime()返回一个long,但您正在强制转换为int,这可能是原因,
尝试使用long来跟踪时间,看看这是否有帮助。

你能用一个简单的例子重现这个问题吗?你有没有试过观察你的内存消耗情况,看看GC是否在时间尖峰时运行?