2013-03-04 60 views
2

嗨我想做一個空氣曲棍球類型的遊戲,但我遇到麻煩實施槳運動組件。如何使用setLinearVelocity將一個body(槳)移動到我的觸摸位置,並使用setLinearVelocity的一個引擎的box2d擴展名?當我試圖做到這一點時,球在一條看似隨意的路徑中移動。如何讓身體移動到我的觸摸位置?

這是我試過的。

@Override 
    public boolean onSceneTouchEvent(Scene pScene, TouchEvent p) { 

      if(p.isActionDown()){ 
       moveAir(p.getY(),p.getX()); 
      }else if(p.isActionMove()){ 
       moveAir(p.getY(),p.getX()); 
      }else if(p.isActionUp()){ 
       myPad.setLinearVelocity(0, 0); 
      } 


     return false; 
    } 

    private void moveAir(float y, float x) { 
     x=x/32; 
     y=y/32; 



     if(myPad.getLocalCenter().x>x){ 
      myPad.setLinearVelocity(myPad.getLinearVelocity().x-10, myPad.getLinearVelocity().y); 
     }else if(myPad.getLocalCenter().x<x){ 
      myPad.setLinearVelocity(myPad.getLinearVelocity().x+10, myPad.getLinearVelocity().y); 
     }else{ 
      myPad.setLinearVelocity(0, myPad.getLinearVelocity().y); 
     } 


     if(myPad.getLocalCenter().y>y){ 
      myPad.setLinearVelocity(myPad.getLinearVelocity().x,myPad.getLinearVelocity().y-10); 
     }else if(myPad.getLocalCenter().y<y){ 
      myPad.setLinearVelocity(myPad.getLinearVelocity().x,myPad.getLinearVelocity().y+10 ); 
     }else{ 
      myPad.setLinearVelocity(myPad.getLinearVelocity().x, 0); 
     } 
    } 
+2

沒有幫助,但有史以來最好的問題標題XD – zenkaty 2013-03-04 04:51:56

回答

1

感謝您的建議,但我發現,使用setLinearVelocity是簡單的比鼠標共同使用:

float linearVelocityX = (TouchX - myBody.getPosition().x); 
float linearVelocityY = (TouchY - myBody.getPosition().y); 
Vector2 linearVelocity = new Vector2(linearVelocityX, linearVelocityY); 
myPad.setLinearVelocity(linearVelocity);