#java #graphics #2d #game-engine #graphics2d
Вопрос:
Я делал простую игру в движке 2D-рендеринга Java и наткнулся на проблему, когда, если объект движется достаточно быстро, анимация будет заикаться каждые пару секунд или около того. Я хочу сделать его более плавным, чтобы анимация не казалась некачественной.
Это мой основной метод запуска класса:
@Override public void run() { this.requestFocus(); long lastTime = System.nanoTime(); double amountOfTicks = 60.0; double ns = 1000000000 / amountOfTicks; double delta = 0; long timer = System.currentTimeMillis(); int frames = 0, ticks = 0; long renderLastTime = System.nanoTime(); double amountOfRenders = 60; double renderNs = 1000000000 / amountOfRenders; double renderDelta = 0; while (isRunning) { long now = System.nanoTime(); delta = (now - lastTime) / ns; lastTime = now; while (delta gt;= 1) { tick(); ticks ; delta--; } now = System.nanoTime(); renderDelta = (now - renderLastTime) / renderNs; renderLastTime = now; while (isRunning amp;amp; renderDelta gt;= 1) { render(); frames ; renderDelta--; } if(System.currentTimeMillis() - timer gt; 1000) { timer = 1000; FPS = frames; UPS = ticks; frames = 0; ticks = 0; } } stop(); }
Если вам нужен еще какой-либо код, пожалуйста, прокомментируйте.
Пожалуйста, помогите мне, чтобы я мог сделать эту игру более плавной!
С уважением,
Юлекпл
Комментарии:
1. Похоже, вы используете режим ожидания «занято». Вместо этого используйте javax.swing. Вместо этого таймер.
2. Как я могу это реализовать? Я новичок в создании игр на Java.
3. Есть множество доступных учебных пособий, просто поищите в Интернете, теперь, когда вы знаете, что искать,
4. Я, кажется, не могу этого понять. Я не знаю, как это сделать. @JustanotherJavaprogrammer
5. Вы нашли какой-нибудь учебник?