Android - AndEngine Apply Force

时间:2014-04-19 16:20:21

标签: java android andengine

我在Android应用程序中使用AndEngine和Box2d 我必须做什么,当按下“leftArrow”和“rightArrow”按钮时,由于“更新处理程序”方法的频繁调用,玩家不会开始移动得太快?我希望玩家以相同的速度不断移动。

//same for leftArrow
Sprite rightArrow = new Sprite(...) {
  @Override
  public boolean onAreaTouched(TouchEvent pSceneTouchEvent,
    float pTouchAreaLocalX, float pTouchAreaLocalY) {

    if(pSceneTouchEvent.isActionDown()) {
      goRight = true;
    }
    else if(pSceneTouchEvent.isActionUp()) {
      goRight = false;
    }

    return true;
  }
};

private IUpdateHandler  UpdateHandler = new IUpdateHandler(){
  @Override
  public void onUpdate(float pSecondsElapsed) {

    if(goLeft) {
      playerBody.applyForce(-50, 0, body.getWorldCenter().x, body.getWorldCenter().y);
    }
    if(goRight){
      playerBody.applyForce(50, 0, body.getWorldCenter().x, body.getWorldCenter().y);
    }
  }
};

1 个答案:

答案 0 :(得分:0)

使用setLinearVelocity而不是applyForce。它应该工作