Я разрабатываю небольшую игру сверху вниз.Камеру можно перемещать с помощью мыши в пределах определенного диапазона обзора, в то время как курсор скрывается с помощью Gdx.input.setCursorCatched(true)
, а искусственная рисуется в центре экрана.Вот как обрабатывается движение камеры:
Vector2 deltaMouse = new Vector2(Gdx.input.getDeltaX() * mouseSensitivity,
-Gdx.input.getDeltaY() * mouseSensitivity);
relativeCameraPosition.add(deltaMouse);
relativeCameraPosition.limit(viewRange);
cameraPosition = playerPosition.cpy().add(relativeCameraPosition);
Однако я столкнулся с проблемой: игра работает со скоростью более 1000 FPS в обычном режиме, но после вызова Gdx.graphics.setVSync(true)
и FPS ограничивается чувствительностью мыши до 60резко падает, с движением камеры примерно в 3 раза медленнее.
Я немного его проверил и обнаружил, что эта проблема связана с перехваченным курсором.Если я закомментирую Gdx.input.setCursorCatched(true)
, проблема решится, и скорость отклика камеры больше не будет зависеть.Однако, очевидно, что теперь второй курсор перемещается по экрану и стремится выйти за его пределы.