2014-01-09 68 views
0

我想學習andengine。當我觸及精靈中心(樹)時,一切正常。但是當我在精靈頂部觸摸時,它會跳到精靈的中心。雪碧跳到精靈的中心觸摸它

希望我的問題很清楚。

image 1 touch on center marked as red circle

image 2 touched on top of the tree but it jumped to where i jumped.

這是對觸摸事件的代碼我使用

final Sprite face = new Sprite(centerX, centerY, this.mFaceTextureRegion, this.getVertexBufferObjectManager()) { 
     @Override 
     public boolean onAreaTouched(final TouchEvent pSceneTouchEvent, final float pTouchAreaLocalX, final float pTouchAreaLocalY) { 
      this.setPosition(pSceneTouchEvent.getX() - this.getWidth()/2, pSceneTouchEvent.getY() - this.getHeight()/2); 
      return true; 
     } 
    }; 
+0

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

+0

其實,我在這裏沒有看到問題。你在問如何移動精靈,無論你在哪裏抓住它,而不是集中在接觸點上? –

+0

這個問題還不清楚。你想讓圖片跳到你按下的位置嗎?如果沒有,那麼你應該刪除@MoshErsan指出的那一行,因爲這是將精靈的位置設置在觸點的中心位置。 –

回答

0

我想你想你的精靈在場景的中心,當你觸摸它的任何部分sprite, 但是您使用的onAreaTouched應​​該使用IOnSceneTouchListener,如下所示: -

@Override 
    public boolean onSceneTouchEvent(final Scene pScene, 
      final TouchEvent pSceneTouchEvent) { 
      this.setPosition(pSceneTouchEvent.getX() - face.getWidth()/2, pSceneTouchEvent.getY() - face.getHeight()/2); 

     return false; 
    } 
+0

謝謝你的時間..但那不是我想要的..我不能碰樹的頂部。即如果我觸摸它的頂部,觸摸跳轉到樹的中心。 – arjunkn