我正在開發一個 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);它不像我預期的那樣工作。如果我快速移動鼠標,光標的位置仍然會移動,然后它會重置到屏幕中間。我也嘗試將光標捕獲設置為true,但這只會使光標不可見。 Gdx.input.setCursorCatched(true);我希望鼠標光標始終放在屏幕中間,然后根據鼠標移動 3d 移動對象。
1 回答

慕娘9325324
TA貢獻1783條經驗 獲得超4個贊
使用Gdx.input.setCursorCatched(true)但然后在鼠標被抓住時將鼠標十字準線繪制到屏幕中心,并在您松開鼠標時將其移除。
根據您設置游戲的方式,您的十字準線應該是您最后渲染的東西之一:
public void render() {
...
spriteBatch.render(cursor, Gdx.graphics.getWidth()-cursorSize.x)/2,(Gdx.graphics.getHeight()-cursorSize.y)/2);
spriteBatch.end();
}
添加回答
舉報
0/150
提交
取消