在所有设备上,精灵移动速度不是恒定的 - Andengine

3
我正在创建一款Android游戏并使用AndEngine。在不同的设备上,背景精灵移动速度不同,具有变化性。我正在使用以下代码移动bgSprite。如何在不同设备上保持游戏速度恒定?
 bgSprite1.setPosition(bgSprite1.getX() - 10, bgSprite1.getY());

祝你好运...我认为你的工作会很吃力,因为不同的设备具有不同的处理器速度和渲染能力。 - Aiden Fry
1
为您的更新处理程序注册一个TimerHandler(),并将您的位置更新代码放在其中。我猜您当前的代码是每帧更改一次位置,因此速度因设备而异。 - 正宗白布鞋
1个回答

0
创建一个继承Sprite的类,例如我为自己创建了这个类(shouldDie是我用来判断何时销毁精灵的变量(在这种情况下,当它超出屏幕时)):
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);

}
}

速度是移动精灵的速度。 我将其设置为随机的,但您可以根据需要进行设置。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接