2016-09-23 60 views
0

使用在單獨的線程上處理玩家輸入是否有意義?

Gdx.input.isTouched() 

我的遊戲我有問題,就像是笨鳥先飛,我有一個名爲alreadTouched布爾值。

我用這個方法供玩家使用敲擊輸入:

if(Gdx.input.isTouched()){ 
    alreadyTouched = true 
}else{ 
    alreadyTouched = false; 
} 

的問題是,它只能識別觸摸的99%。偶爾會由於某種原因而錯過觸摸。將控件放在單獨的線程上有意義嗎?

+0

如果您在使用「alreadyTouched」的地方添加代碼,我們可以幫助您找到真正的問題。 – IronMonkey

+0

我發現使用InputProcessor比試圖拼湊布爾值和調用各種isTouched,justTouched等方法更容易,也更少出錯。 – Tenfour04

+0

我實現了輸入處理器並使用了一個輸入多路複用器。奇怪的是,相同的事情ocurrs,但只有當使用多路複用器 – XPatStudios

回答

0

不,這沒有意義。不是你的情況。對於像Flappy Bird這樣的簡單遊戲或者大多數遊戲來說,在單獨的線程上輸入是沒有意義的。

偶爾缺少觸摸輸入的問題不會通過添加線程來解決。問題是您的物理設備或您的代碼。

如果要在新線程中處理輸入,則需要檢查輸入,然後必須等待主線程上的同步來處理輸入。 線程是用於大量計算,如物理計算/模擬,你想在後臺處理。

相關問題