Я только что начал небольшой проект с помощью libgdx, и я заметил, что камера немного отстает от мыши. Я двигаюсь это так: (я вырезал все остальное)Перемещение камеры без запаздывания в libgdx
@Override
public boolean touchDown(int screenX, int screenY, int pointer, int button) {
screenXlast = screenX;
screenYlast = screenY;
if (button == Input.Buttons.RIGHT || pointer > 0) {
rightMouseKlicked = true;
return true;
}
@Override
public boolean touchUp(int screenX, int screenY, int pointer, int button) {
if (button == Input.Buttons.RIGHT) {
rightMouseKlicked = false;
}
return false;
}
@Override
public boolean touchDragged(int screenX, int screenY, int pointer) {
if (rightMouseKlicked) {
gamecam.translate((screenXlast - screenX) * gamecam.zoom, (screenY -
screenYlast) * gamecam.zoom);
}
screenXlast = screenX;
screenYlast = screenY;
return false;
}
Игра работает на 60fps, но кажется, что выход задерживается на несколько кадров. (курсор мыши не остается на том же месте на карте при перемещении)
Есть ли другой способ сделать это, чтобы камера оставалась с мышью?
gamecam.translate ((screenXlast - screenX) * gamecam.zoom, (screenY - screenYlast) * gamecam.zoom) отсутствует значение дельта, чтобы исправить ваши преобразования в соответствии с фактическим fps. Несмотря на то, что может возникнуть другая причина вашей проблемы, вы всегда должны применять дельта к своим преобразованиям. – Jankapunkt
Просьба показать метод 'resize'. – Tenfour04
Что вы имеете в виду методом изменения размера? – NuclearVirus