Я создаю Android-игру a2D с LibGDX
, и я использую орфографическую камеру для перемещения по всему миру.LibGDX: Перемещение камеры с Touch
Для перемещения камеры плеер должен касаться и перетаскивать экран. Поэтому, если вы касаетесь экрана и перетаскиваете его вправо, камера должна двигаться влево. Таким образом, это должно быть подобно перемещению части увеличенного изображения в галерее. Надеюсь, вы следите за мной.
Это код:
public class CameraTestMain extends ApplicationAdapter {
SpriteBatch batch;
Texture img;
OrthographicCamera camera;
@Override
public void create() {
batch = new SpriteBatch();
img = new Texture("badlogic.jpg");
camera = new OrthographicCamera(1280, 720);
camera.update();
}
@Override
public void render() {
Gdx.gl.glClearColor(1, 0, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
handleInput();
camera.update();
batch.setProjectionMatrix(camera.combined);
batch.begin();
batch.draw(img, 0, 0);
batch.end();
}
public void handleInput() {
// That is my problem
}
}
Я не знаю, что писать в методе handleInput()
. Я знаю, что есть интерфейс InputProcessor
со способом touchDragged(int x, int y, int pointer)
, где вы можете обрабатывать Touch Drag, но я понятия не имею, как его использовать.
Спасибо за ваши идеи и вашу помощь.
@ erik4thewinners Примите этот ответ, если он поможет вам и рассмотрит вопрос о его продолжении, поскольку я считаю, что это хороший ответ. – Madmenyo
Параметры screenX и screenY являются абсолютными значениями. – Winter
Этот ответ неправильный из-за того, что 'camera.position.set (камера.position.x + screenX, камера.position.y + screenY); 'отправляет камеру, летящую с экранаX и screenY, возвращаясь, где мышь находится на экране ... Вместо screenX нужно вставить какое-то« изменение в X », а также для Y .. , – Sierox