Gdx.input.isTouched()
我的遊戲我有問題,就像是笨鳥先飛,我有一個名爲alreadTouched布爾值。
我用這個方法供玩家使用敲擊輸入:
if(Gdx.input.isTouched()){
alreadyTouched = true
}else{
alreadyTouched = false;
}
的問題是,它只能識別觸摸的99%。偶爾會由於某種原因而錯過觸摸。將控件放在單獨的線程上有意義嗎?
Gdx.input.isTouched()
我的遊戲我有問題,就像是笨鳥先飛,我有一個名爲alreadTouched布爾值。
我用這個方法供玩家使用敲擊輸入:
if(Gdx.input.isTouched()){
alreadyTouched = true
}else{
alreadyTouched = false;
}
的問題是,它只能識別觸摸的99%。偶爾會由於某種原因而錯過觸摸。將控件放在單獨的線程上有意義嗎?
不,這沒有意義。不是你的情況。對於像Flappy Bird這樣的簡單遊戲或者大多數遊戲來說,在單獨的線程上輸入是沒有意義的。
偶爾缺少觸摸輸入的問題不會通過添加線程來解決。問題是您的物理設備或您的代碼。
如果要在新線程中處理輸入,則需要檢查輸入,然後必須等待主線程上的同步來處理輸入。 線程是用於大量計算,如物理計算/模擬,你想在後臺處理。
如果您使用的是Scene2D,我建議使用InputHandler。 (你應該,tbh)
如果您在使用「alreadyTouched」的地方添加代碼,我們可以幫助您找到真正的問題。 – IronMonkey
我發現使用InputProcessor比試圖拼湊布爾值和調用各種isTouched,justTouched等方法更容易,也更少出錯。 – Tenfour04
我實現了輸入處理器並使用了一個輸入多路複用器。奇怪的是,相同的事情ocurrs,但只有當使用多路複用器 – XPatStudios