【问题标题】:AndEngine - move objectAndEngine - 移动对象
【发布时间】:2015-07-17 20:12:53
【问题描述】:

我在屏幕上有两个按钮和一个播放器对象。第一个按钮必须将玩家向左移动,第二个按钮必须向右移动,但玩家移动并不顺畅。我怎样才能让玩家移动顺畅?

ButtonSprite rightButton = new ButtonSprite(360,700,this.resourceManager.RightButtonRegion,this.vertexManager)
{
    @Override
    public boolean onAreaTouched(TouchEvent pSceneTouchEvent, float pTouchAreaLocalX, float pTouchAreaLocalY)
    {
        player.MoveRight();
        return super.onAreaTouched(pSceneTouchEvent, pTouchAreaLocalX, pTouchAreaLocalY);
    }
};

ButtonSprite leftButton = new ButtonSprite(50,700,this.resourceManager.LeftButtonRegion,this.vertexManager)
{
    @Override
    public boolean onAreaTouched(TouchEvent pSceneTouchEvent, float pTouchAreaLocalX, float pTouchAreaLocalY)
    {
        player.MoveLeft();
        return super.onAreaTouched(pSceneTouchEvent, pTouchAreaLocalX, pTouchAreaLocalY);
    }
};

public class Player extends Sprite
{
    ...

    public void MoveLeft()
    {
        float x = this.body.getPosition().x -0.2f;
        float y =  this.body.getPosition().y;
        this.body.setTransform(x,y,0);
    }

    public void MoveRight() 
    {
        float x = this.body.getPosition().x + 0.2f;
        float y =  this.body.getPosition().y;
        this.body.setTransform(x, y, 0);
    }
}

【问题讨论】:

    标签: android andengine


    【解决方案1】:

    在您的 MoveLeft 方法中,您添加了一个预先固定的值,这不会缩放到帧速率。

    你应该在这个方法中设置一个像“movingLeft = true”这样的标志,在你的processLogics中你应该根据帧率移动位置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-05
      • 2017-11-07
      • 1970-01-01
      相关资源
      最近更新 更多