2014-09-03 83 views
0

我正在製作遊戲,我希望玩家能夠通過雙擊屏幕來提高速度,我的問題:由於玩家通過按屏幕移動一次(你按向左移動,向右移動)程序會延遲一次或兩次按下屏幕,或者播放器首先以正常速度啓動,然後在檢測到時加速另一個龍頭?這是我運動的外觀大氣壓:libgdx雙擊或其他手勢

  touchPos.set(Gdx.input.getX() - 42, Gdx.input.getY() + 19, 0); 
      camera.unproject(touchPos); 

if (Gdx.input.isTouched()) { 
      if (player.getX() > touchPos.x + 16) { 
       player.setPosition(player.getX() - (speed * Gdx.graphics.getDeltaTime()), player.getY() + (130 * Gdx.graphics.getDeltaTime())); 


      } else if (player.getX() < touchPos.x - 16) { 
       player.setPosition(player.getX() + (speed * Gdx.graphics.getDeltaTime()), player.getY() + (130 * Gdx.graphics.getDeltaTime())); 
} 

這工作得很好,但是我應該如何實現這樣玩家可以用一個簡單的手勢加快?思考? (讓我知道是否需要詳細說明或發佈更多代碼)

+0

您可以使用向上輕掃以提高速度和刷卡,向下則降低速度。 [見這篇文章](http://stackoverflow.com/q/937313/3326331)獲取與手勢相關的幫助。如果你可以刷卡和刷卡,我應該發佈一些代碼嗎? – 2014-09-03 18:14:45

+0

嗯,這可能會奏效,但我只希望速度的提高達到一秒鐘(擺脫困境),所以如果能夠雙倍快速地進行翻倍並點擊一次就可以了正常。是否可以橫向滑動?這會很酷 – user3486059 2014-09-03 20:49:42

+0

是的,你可以在所有方向上滑動.. [這篇文章](http://stackoverflow.com/a/938657/3326331)談到從左到右,從左到右滑動。 – 2014-09-04 05:59:03

回答

1

Libgdx已經有一個用於檢測手勢的GestureDetector類。您可以在LibGdx wiki上找到更多關於它的信息。

https://github.com/libgdx/libgdx/wiki/Gesture-detection

注:GestureDetector需要以檢測手勢被註冊爲InputProcessor。如果您想保留以前的inout處理器並使用GestureDetector,則必須使用InputMultiplexer將兩者都註冊爲InputProcessors。更多信息可以在這個wiki頁面找到。

https://github.com/libgdx/libgdx/wiki/Event-handling