2012-10-31 61 views
3

我正在創建一個安卓遊戲並使用AndEngine。背景雪碧在不同設備上的移動速度並不相同,其變化也不盡相同。我使用下面的代碼來移動bgSprite。如何保持不同設備的遊戲速度不變?雪碧的移動速度在所有設備中都不是恆定的 - Andengine

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

祝你好運......我認爲你會因爲不同的設備具有不同的處理器速度和渲染能力而讓你的工作不再適合你 –

+1

爲你的更新處理程序註冊一個TimerHandler(),並將你的位置更新代碼放入其中。我猜你現在的代碼每幀都在改變位置,所以速度因設備而異。 –

回答

0

創建一個類擴展雪碧,比如我做了這個,我(shouldDie這是我用它來知道什麼時候消滅精靈(在這種情況下,當它在屏幕的)一個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); 

} 
} 

速度是移動精靈的速度。 我使它隨機,但你可以將它設置爲你想要的。