2012-10-28 46 views
1

我想讓精靈移動,當我點擊它,但我有一個問題......精靈總是去左上角,我試圖把隨機值,但它沒有給出結果Andengine,使精靈隨機移動

ballITexture = TextureRegionFactory.extractFromTexture(BaseActivity.getSharedInstance().ballTexture); 
final Random rand = new Random(); 
sprite = new Sprite(0, 0, ballITexture, BaseActivity.getSharedInstance().getVertexBufferObjectManager()){ 
      @Override 
      public boolean onAreaTouched(TouchEvent pSceneTouchEvent, float pTouchAreaLocalX, float pTouchAreaLocalY) { 
       randomMove(rand.nextInt(4), pTouchAreaLocalX, pTouchAreaLocalY, this); 

      }; 

mCamera = BaseActivity.getSharedInstance().mCamera; 
sprite.setPosition(mCamera.getWidth()/2 - sprite.getWidth()/2, mCamera.getHeight()/2 - sprite.getHeight()/2); 
moveable = true; 

,這是randomMove方法:

private void randomMove(int direction, float pTouchAreaLocalX, float pTouchAreaLocalY, Sprite sprite){ 

    switch(direction){ 
      case 0: 
       sprite.registerEntityModifier(new MoveModifier(1, pTouchAreaLocalX, 1, pTouchAreaLocalY, 1)); 
       break; 
      case 1: 
       sprite.registerEntityModifier(new MoveModifier(1, pTouchAreaLocalX, 1, pTouchAreaLocalY, -1)); 
       break; 
      case 2: 
       sprite.registerEntityModifier(new MoveModifier(1, pTouchAreaLocalX, -1, pTouchAreaLocalY, 1)); 
       break; 
      case 3: 
       sprite.registerEntityModifier(new MoveModifier(1, pTouchAreaLocalX, -1, pTouchAreaLocalY, -1)); 
       break; 
     } 

} 

我的問題是,爲什麼我的精靈去一直到了左上角,當我撫摸它,而不是隨機的方向移動?如何解決它?

回答

1

忘記這一點,我通過不正確PARAMS到MoveModifier,這裏我把1和-1值應該是相機的任何像素

private void randomMove(int direction, float pTouchAreaLocalX, float pTouchAreaLocalY, Sprite sprite){ 

     sprite.registerEntityModifier(new MoveModifier(1, pTouchAreaLocalX, rand.nextInt(mCamera.getWidth()), pTouchAreaLocalY, rand.nextInt(mCamera.getHeight())));