2013-01-24 44 views
1

我使用AndEngine目前正在二維滾動的射擊遊戲在Android上,但我有相對觸摸控制,允許玩家通過拖動手指向上/向下控制精靈的問題/左/右移動船隻,船隻應移動到與手指相同的方向,就像通過觸摸板控制指針一樣(這在觸摸屏太空入侵者類遊戲中非常普遍)控制XY移動用手指拖動在Android的

所以我想出了這個代碼,

float oldX, oldY; 
float X, Y; 
     public boolean onSceneTouchEvent(Scene pScene, 
       TouchEvent pSceneTouchEvent) { 



      if(pSceneTouchEvent.isActionMove()){ 
       float currentX = pSceneTouchEvent.getX(); 
       float currentY = pSceneTouchEvent.getY(); 

       float deltaX = currentX-oldX; 
       float deltaY = currentY-oldY; 

       System.out.println("X: " + X + " Y: " + Y); 

       X= X + deltaX; 
       Y= Y + deltaY; 

       oldX = currentX; 
       oldY = currentY; 
      } 
      return true; 
     } 

我遇到的問題是變量X,Y,我將用它來設置精靈屏幕上的位置根據我的手指移動不會增加/減少,如果我連續拖動我的手指右側,X值應該連續增加,當我拖動手指左側時,X值也應該連續減少。但是我所擁有的是X值根據手指在屏幕上的位置而增加/減少。我做錯了什麼?

+0

請說明 - 您正在拖動屏幕,位置值*是*或*不是*增加/減少? – THarms

+0

實際上,它正在增加/減少我想要的方向,但只要我擡起手指並開始向同一方向再次滑動,數值就會變回原來的位置,並且在我繼續滑動時再次開始增加,直到我到達屏幕的邊緣。所以我最多可以看到400左右,只要我繼續向同一方向滑動,而不是在我擡起手指並繼續滑動時數字變回來,它就會增加。 – atmosphere506

+0

其實這就是我正在尋找的,我只是尋找最好的方式來做同樣的Android http://stackoverflow.com/questions/11858522/cocos2d-sprite-relative-movement – atmosphere506

回答

1

我猜平板電腦不能組合幾次掃描。水平掃描通常是一種手勢,而不是一種運動。

我想你應該設置指針的位置,當你停止掃地,這樣你就可以開始一個新的掃描新鮮。

也請看一看手勢在安卓

http://mobile.tutsplus.com/tutorials/android/android-gesture/ http://www.anddev.org/gesturedetector_and_gesturedetectorongesturelistener-t3204.html

有一種方法OnGestureListener onScroll(參數),這可能會幫助你並節省時間。