我在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);
}
}
};
答案 0 :(得分:0)
使用setLinearVelocity而不是applyForce。它应该工作