У меня есть простой мир box2d с платформой и камерой, отслеживающей плеер. Я пытаюсь получить сенсорный контроль ввода, когда я касаюсь стороны экрана, но он чувствует себя более сложным, чем я думаю. прикосновение к экрану иногда перемещает ящик, но никогда, когда я нахожусь в месте, которое я ожидаю, и пытаюсь отлаживать, рисуя картинку, на которой я касаюсь, только приводило к большей путанице. вот весь код с камеры или сенсорный прослушиванияlibgdx и box2d, экранные координаты касания nonsensical
метод создания
public void create() {
float w = Gdx.graphics.getWidth();
float h = Gdx.graphics.getHeight();
Gdx.input.setInputProcessor(new MyInputProcessor());
camera = new OrthographicCamera();
camera.setToOrtho(false, w/2, h/2);
touchpos = new Vector3();
world = new World(new Vector2(0, -9.8f), false);
b2dr = new Box2DDebugRenderer();
player = createBox(8, 10, 32, 32, false);
platform = createBox(0, 0, 64, 32, true);
}
метод визуализации
public void render() {
update(Gdx.graphics.getDeltaTime());
Gdx.gl.glClearColor(0, 0, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
b2dr.render(world, camera.combined.scl(PPM));
}
размер
public void resize(int width, int height) {
camera.setToOrtho(false, width/2, height/2);
}
обновление камеры
public void cameraUpdate(float delta){
Vector3 position = camera.position;
position.x = player.getPosition().x * PPM;
position.y = player.getPosition().y * PPM;
camera.position.set(position);
camera.update();
}
Метод ввода
касания и математика
@Override
public boolean touchDown(int screenX, int screenY, int pointer, int button) {
touchpos.set(screenX, screenY, 0);
camera.unproject(touchpos);
if (touchpos.x > 500){
touchleft = true;
}
else touchleft = false;
if (touchpos.x < 300){
touchright = true;
}
else touchright = false;
if (300 < touchpos.x && touchpos.x < 500){
touchcenter = true;
}
else touchcenter = false;
return true;
}
Я думаю, что это должно быть так же просто, как использование сырья сенсорного значения без баловаться с камерой, как я хочу область, используемую для контроля, чтобы быть такими же всегда, но что Ждет» т, поэтому я взял в Google и попытался непроектировать и делать другие игры с камерой, но прикосновение никогда не срабатывало.
Я чувствую, что ответ должен быть простым. все что мне нужно, что, когда он обнаруживает прикосновение в левой или правой части экрана для того, чтобы установить соответствующую переменную для истинного
если кто-нибудь с большим опытом может увидеть ошибку я супер ценю