2014-05-11 1 views
0

Je souhaite déplacer un corps physique (canard) dans une direction précise lorsque l'utilisateur fait glisser le corps. Je peux détecter l'événement de balayage de scène. Mais comment se connecter avec mon corps, lorsqu'il est balayé.Déplacez un corps pour corriger la direction lorsque vous balayez

Mon code: Dans mon jeu de classe Scène >>

// called in scene constructor 


    private void addDuck(final float pX, final float pY) { 

      duck = new Duck(pX, pY, resourcesManager.mDuckTextureRegion, 
        vertexBufferObjectManager) { 
      @Override 
      public boolean onAreaTouched(TouchEvent pSceneTouchEvent, 
        float pTouchAreaLocalX, float pTouchAreaLocalY) { 


       this.setPosition(pSceneTouchEvent.getX() - this.getWidth()/2, 
         pSceneTouchEvent.getY() - this.getHeight()/2); 

       Log.e("onAreaTouched", "Inside Duck"); 

       return true; 
      } 

      }; 

      body = PhysicsFactory.createCircleBody(this.mPhysicsWorld, duck, 
        BodyType.DynamicBody, objectFixtureDef); 
      duck.setPhysicsWorld(mPhysicsWorld, body); 
      registerTouchArea(duck); 
      getChildByIndex(SECOND_LAYER).attachChild(duck); 
      duckList.add(duck); 
      body.setGravityScale(0); 
     } 

Maintenant, mon objet ne se déplacent pas à une direction. J'ai eu la mise en œuvre du code IOS here. Quelqu'un peut aider à faire cela dans ANDROID.

Répondre

1
@Override 
       public boolean onAreaTouched(TouchEvent pSceneTouchEvent, 
         float pTouchAreaLocalX, float pTouchAreaLocalY) { 
             if (pSceneTouchEvent.isActionMove()) { 
         this.setPosition(pSceneTouchEvent.getX() - this.getWidth()/2, 
          pSceneTouchEvent.getY() - this.getHeight()/2); 
         return true; 
        } 
        return super.onAreaTouched(pSceneTouchEvent, pTouchAreaLocalX, 
          pTouchAreaLocalY); 
       } 
      }; 
Questions connexes