如何将鼠标光标置于屏幕中间并根据鼠标移动来移动对象?

时间:2019-04-15 19:42:38

标签: java libgdx

我正在研究3D游戏,其中光标(十字准线)位于屏幕的中心,并且当您移动鼠标时,对象会根据鼠标旋转(就像fps游戏中一样)。

我已经用自己的十字准线替换了默认十字准线,但是在屏幕上居中时遇到了麻烦。我已经使用以下方法确定了光标放置的中间位置:

cursorPosition=new Vector2((Gdx.graphics.getWidth()-cursorSize.x)/2,(Gdx.graphics.getHeight()-cursorSize.y)/2);

然后,每次使用此方法调用render()方法时,我都会应用该位置:
Gdx.input.setCursorPosition((int)cursorPosition.x,(int)cursorPosition.y);
它没有按我预期的那样工作。如果我快速移动鼠标,光标的位置仍然会移动,然后重置到屏幕中间。
我还尝试将光标catch设置为true,但这只会使光标不可见。 Gdx.input.setCursorCatched(true);

我希望始终将鼠标光标放置在屏幕中间,然后根据鼠标移动3d移动对象。

1 个答案:

答案 0 :(得分:1)

使用Gdx.input.setCursorCatched(true),但是在捕获鼠标时将鼠标的十字线绘制到屏幕的中心,并在取消捕获时将其删除。

根据游戏的设置方式,十字准线应该是渲染的最后一件事:

public void render() {
    ...
    spriteBatch.render(cursor, Gdx.graphics.getWidth()-cursorSize.x)/2,(Gdx.graphics.getHeight()-cursorSize.y)/2);
    spriteBatch.end();
}