for (byte i = 0; i < 20; i++) {maxDistance = 10 * Gdx.graphics.getDeltaTime();
if (Gdx.input.isTouched(i) && Gdx.input.getY()<= 400) {
player1TouchPosition.set(Gdx.input.getX(i), Gdx.input.getY(i), 0);
camera.unproject(player1TouchPosition);
}
player1Tmp.set(player1TouchPosition.x, player1TouchPosition.y).sub(player1Rectangle.x, player1Rectangle.y);
if (player1Tmp.len() <= maxDistance) {
player1Rectangle.x = player1TouchPosition.x;
player1Rectangle.y = player1TouchPosition.y;
} else {
player1Tmp.nor().scl(maxDistance);
player1Rectangle.x += player1Tmp.x;
player1Rectangle.y += player1Tmp.y;
}
if (Gdx.input.isTouched(i) && Gdx.input.getY() >= 401) {
player2TouchPosition.set(Gdx.input.getX(i), Gdx.input.getY(i), 0);
camera.unproject(player2TouchPosition);
}
player2Tmp.set(player2TouchPosition.x, player2TouchPosition.y).sub(player2Rectangle.x, player2Rectangle.y);
if (player2Tmp.len() <= maxDistance) {
player2Rectangle.x = player2TouchPosition.x;
player2Rectangle.y = player2TouchPosition.y;
} else {
player2Tmp.nor().scl(maxDistance);
player2Rectangle.x += player2Tmp.x;
player2Rectangle.y += player2Tmp.y;
}
}
Здравствуйте, я использую этот код для перехода в позицию касания. Но мне нужно много касаться. Это не работает. Когда я добавляю player2, он не работает. Я не понимал, как много касаться. Как я могу это исправить?Java LibGDX Multi Touch Issue
У вас есть 2 прямоугольника, 1 прямоугольник вверх и 1 вниз. Итак, сначала вы проверяете, находится ли позиция вверх или вниз. Я предпочитаю использовать 'touchDragged' вместо' touchDown'. 'touchDragged' также является методом из интерфейса' InputProcessor'. –
После этого вы инициализируете переменную для прямоугольника 1 и прямоугольника 2. В методе визуализации вы должны обновить новую позицию. –
Надеюсь, я помог вам! :) –