2011-12-15 2 views
2

안녕하세요 저는 부드러운 움직임을 얻지 못하고 있습니다. 내 게임 열차가 앞뒤로 움직이는 것이 좋지만 열차 움직임이 부드럽지 않습니다 (기차가 고정 속도와 부드러움으로 움직이지 않는 것처럼). ............원활한 이동 방법

public void run() { 
Canvas canvas = null; 

while (mRun) { 
    long beginTimeMillis, timeTakenMillis, timeLeftMillis; 
    canvas = mHolder.lockCanvas(); 
    if (canvas != null) { 
     beginTimeMillis = System.currentTimeMillis(); 
     gp.doDraw(canvas); 
     gp.animate(); 
     timeTakenMillis = System.currentTimeMillis() - beginTimeMillis; 
     timeLeftMillis = (1000L/30) - timeTakenMillis; 
     Log.i("timeLeftMillis"+timeLeftMillis,""); 
     mHolder.unlockCanvasAndPost(canvas); 
     if (timeLeftMillis < 5) { 
      timeLeftMillis = 5; 

     } 
     try { 
      TimeUnit.MILLISECONDS.sleep(timeLeftMillis); 
     } catch (InterruptedException ie) { 
     } 
    } 

    } 
} 

편집을 도와주세요 : 나는 부드러운 움직임을 가져 오는 동안 스레드를 사용하는 방법을 모르겠어요.

답변

0

View 또는 SurfaceView를 사용하고 계십니까? 보기를 사용하는 경우 표면보기를 사용하십시오. 그것은 당신의 신청을 훨씬 더 매끄럽게 할 것입니다.

+0

답장을 보내 주셔서 감사합니다. 나는 표면을 사용하고 있지만 원활한 움직임을 얻지 못하고 있습니다. 나는 부드러운 움직임을 처리하는 방법을 이해하지 못합니다. 내 기차는 일정한 속도로 움직이지 않습니다. 도와주세요. – VSC

+0

페인트에서 안티 앨리어싱을 사용 했습니까? – dinesh707

+0

아니요, 비트 맵을 사용하고 이미지를 그립니다. 내 문제는 기차 속도가 정확하지 않습니다. 열차가 약간의 거리를 이동하면 속도가 느려지고 다음으로 속도가 이동합니다. 코드는 올바른 x 증가 +1 때마다입니다. 문제는 스레드에서 fps를 유지하는 것 같습니다. – VSC