Java3D获取时间问题

Java3D获取时间问题,java,multithreading,timing,Java,Multithreading,Timing,我做了一个射击游戏,两艘船互相射击。我使用paintComponent的方法来绘制或移动对象,但由于某些原因,它在每台计算机上以不同的速度运行 我寻找解决方案,并对我的游戏做了一些修改,比如在线程中绘制和移动对象。现在它在每台计算机上以相同的速度运行。如果我改变尺寸。但问题是我使用了J3DTimer.getValue() 为了使用这个库,我下载了Java3d。如果计算机没有此库或安装,我的游戏将无法运行。我怎样才能解决这个问题?我应该告诉每个人设置Java吗 我还试着使用标准的System.cu

我做了一个射击游戏,两艘船互相射击。我使用paintComponent的方法来绘制或移动对象,但由于某些原因,它在每台计算机上以不同的速度运行

我寻找解决方案,并对我的游戏做了一些修改,比如在线程中绘制和移动对象。现在它在每台计算机上以相同的速度运行。如果我改变尺寸。但问题是我使用了J3DTimer.getValue()

为了使用这个库,我下载了Java3d。如果计算机没有此库或安装,我的游戏将无法运行。我怎样才能解决这个问题?我应该告诉每个人设置Java吗


我还试着使用标准的System.currentTimeMillis(),但是我的游戏运行得很慢。。。有什么想法吗

自Java 1.5以来,出现了一种称为
System.nanoTime()
的方法,它通常比
System.currentTimeMillis()
更精确(取决于底层硬件的功能)


我认为
System.nanoTime()
应该是
J3DTimer.getValue()
的替代品。这样,您就可以消除对Java3D库的依赖。

我使用J3D定时器代替J3D定时器,但使用相同的线程配置,J3D工作正常,但现在在屏幕上我的字符串有一些抖动。我是否从J3DTimer.getValue()和System.nanoTime()获得了相同的值?如果有一些差异,是什么?我可以用这个值修改Thread.sleep方法我刚刚从下载了Java3D源代码,并查看了
J3DTimer.getValue()
。该方法基本上是
System.nanoTime()
的包装器(至少在Java3D的1.5.2版中)。我不确定在这两者之间进行更改会如何改变应用程序的行为方式。