获取LIBGDX中的光标位置

Cod*_*ave 15 java libgdx

如何在libgdx中获取光标位置并将其应用于sprite?像这样? 在此输入图像描述

我希望我的精灵在我的光标位于屏幕的任何地方指向方向.我搜索libgdx示例,但我找不到任何与此相关的示例.

P.T*_*.T. 17

获取光标位置

如果要轮询输入,请使用Gdx.input.getX()Gdx.input.getY()获取当前鼠标x和y坐标.(该文档说它仅与触摸相关,但代码看起来像报告原始鼠标值而不管按钮状态.)

如果你正在使用,InputProcessor你可以使用以下之一:

从没有按下按钮的鼠标接收输入事件.

将位置应用于精灵

更新Vector2从当前精灵位置到光标位置的点.这可以是你的精灵的标题.您需要旋转精灵的标题以匹配此向量.

使用Vector2.angle()来计算这个矢量的角度,和你的精灵的旋转集合了这一点.(这相对于正X轴,因此如果您希望相对于Y轴,可能需要添加常量.)


fra*_*ogp 6

我通常将鼠标跟踪到世界坐标,如下所示:

    // 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;
Run Code Online (Sandbox Code Playgroud)

然后,我可以使用 mouseInWorld2D 访问游戏中的鼠标坐标(相对于场景/世界)。精灵可以非常轻松地跟踪该坐标并计算其角度和方向。