Как получить позицию курсора в libgdx и применить его к спрайту? Как это?
Я хочу, чтобы мой спрайт указывал направление, где мой курсор находится на экране. Я ищу примеры libgdx, но я не могу найти примеры, связанные с этим.
Как получить позицию курсора в libgdx и применить его к спрайту? Как это?
Я хочу, чтобы мой спрайт указывал направление, где мой курсор находится на экране. Я ищу примеры libgdx, но я не могу найти примеры, связанные с этим.
Если вы используете опрос для ввода, используйте Gdx.input.getX()
и Gdx.input.getY()
, чтобы получить текущие координаты мыши и x. (Документ говорит, что он имеет отношение только к прикосновению, но код выглядит так, будто он сообщает о необработанных значениях мыши, независимо от состояния кнопки.)
Если вы используете InputProcessor
, вы можете использовать один из:
для получения входных событий от мыши без нажатия кнопок.
Обновите Vector2
, который указывает текущую позицию спрайта на позицию курсора. Это может быть ваш курс Sprite. Вы захотите повернуть заголовок спрайта в соответствии с этим вектором.
Используйте Vector2.angle()
, чтобы вычислить угол этого вектора, и установите для этого поворот спрайта. (Это относительно положительной оси X, поэтому вам может потребоваться добавить константу, если вы хотите ее относительно оси Y.)
Обычно я отслеживаю свою мышь в мировых координатах следующим образом:
// variables
private final Vector2 mouseInWorld2D = new Vector2();
private final Vector3 mouseInWorld3D = new Vector3();
private final OrthographicCamera cam;
.
.
.
//in render() code
mouseInWorld3D.x = Gdx.input.getX();
mouseInWorld3D.y = Gdx.input.getY();
mouseInWorld3D.z = 0;
cam.unproject(mouseInWorld3D);
mouseInWorld2D.x = mouseInWorld3D.x;
mouseInWorld2D.y = mouseInWorld3D.y;
Затем я могу использовать mouseInWorld2D для доступа к координатам мыши (относительно сцены/мира) в моей игре. Спрайт может легко отслеживать эту координату и вычислять ее угол и направление.