2012-10-31 4 views
3

AndEngine을 만들고 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); 

} 
} 

속도가 이동하는 스프라이트의 속도입니다. 무작위로 만들었지 만 원하는대로 설정할 수 있습니다.

관련 문제