Я сделал небольшую игру Shooter с двумя кораблями, стреляющими друг в друга. Я использовал методы paintComponent для рисования или перемещения объекта, но по какой-то причине он работал с другой скоростью на каждом компьютере.Java3D проблема с получением времени
Я искал решение и внесло некоторые изменения в свою игру, такие как рисование и перемещение объектов в потоке. Теперь он работает с одинаковой скоростью на каждом компьютере. Также, если я изменю размер. Но проблема в том, что я использовал J3DTimer.getValue().
Для использования этой библиотеки я загрузил Java3d. Если компьютер не имеет этой библиотеки или установки, моя игра не работает. Как я могу решить эту проблему? Должен ли я сказать всем, чтобы установить Java ##? :))
Также я попытался использовать стандартный System.currentTimeMillis(), но тогда моя игра работает очень медленно ... Любые идеи?
Я использовал вместо таймера J3D, но с той же конфигурацией моего потока нити J3D работал плавно, но теперь на экране мои строки имеют несколько щелчков. Я не получаю то же значение от J3DTimer.getValue() и System.nanoTime ()? Если есть какие-то отличия, что это такое? Я могу изменить метод Thread.sleep с этим значением – Ercan
Я только что загрузил исходный код Java3D с https://java3d.dev.java.net и посмотрел на 'J3DTimer.getValue()'. Метод в основном является оболочкой для 'System.nanoTime()' в любом случае (по крайней мере, в версии 1.5.2 Java3D). Я не уверен, как изменение между ними может повлиять на поведение вашего приложения. – Ash