【问题标题】:Sprite movement speed is not constant in all device - Andengine精灵的移动速度并非在所有设备中都是恒定的 - Andengine
【发布时间】:2012-10-31 09:29:34
【问题描述】:

我正在创建一个安卓游戏并使用 AndEngine。背景精灵的移动速度在不同的设备中是不一样的,它是变化的。我正在使用下面的代码来移动 bgSprite。如何在不同的设备上保持游戏的恒定速度?

 bgSprite1.setPosition(bgSprite1.getX() - 10, bgSprite1.getY());

【问题讨论】:

  • 祝你好运......我想你会为你完成工作,因为不同的设备有不同的处理器速度和渲染能力
  • 为您的更新处理程序注册一个 TimerHandler(),并将您的位置更新代码放入其中。我猜你当前的代码每帧都在改变位置,所以速度因设备而异。

标签: android andengine


【解决方案1】:

创建一个扩展 Sprite 的类,例如我为我制作了这个(应该是我用来知道何时销毁 sprite 的 var(在这种情况下,当它离开屏幕时)):

public class BackgroundMovingLine extends Sprite {

public boolean shouldDie;
private int speed;

BackgroundMovingLine(final int pX,final int pY, final ITextureRegion pTextureRegion, final VertexBufferObjectManager pVertexBufferObjectManager)
{
    super(pX,pY,pTextureRegion,pVertexBufferObjectManager);
    shouldDie=false;

    speed=(new Random()).nextInt(150)+250;
}
@Override
protected void onManagedUpdate(final float pSecondsElapsed) { 

    float h=this.getY();

    h=(h+(speed*pSecondsElapsed));

    if(h>800)
    {
        shouldDie=true;
    }

    this.setY(h);

}
}

Speed 它是移动精灵的速度。 我是随机设置的,但你可以设置为你想要的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多