2014-04-16 1 views
-1

코드에서 나는 캔버스에서 빠르게 움직이는 새 무리를 다루고 있습니다. 내가해야 할 일은 System.currentTimeMillis() 방법을 사용하여 새들이 화면에서 얼마나 빨리 재생되는지를 늦추는 것입니다. while 루프에서 사용하여 새가 다시 돌아 다니기 전에 20 밀리 초를 기다려야합니다. 나는 이것을하는 방법에 관해 아주 확신하지 않는다.SystemcurrentTimeMillis를 사용하여 지연 시간이

여기에 현재 코드입니다 :

while(NeWorld.isAlive()) 
{ 
    NeWorld.updateWorld(); 
} 

NewWorld.isAlive는 새들이 이동할 수 있도록하고, NeWorld.updateWorld()가 새로 고쳐집니다. 너무 빨리 새로 고치고 System.currentTimeMillis() 메서드를 사용하여 속도를 늦추어 20 밀리 초마다 새로 고침해야합니다.

답변

0

updateWorld() 로직을 별도의 기능에 넣으면 특정 간격으로 호출 할 수 있습니다. 다음은 그 예입니다.

boolean iShouldStillUpdateWorld = true; 
while (iShouldStillUpdateWorld) { 
    if (System.currentTimeMillis() % 20 == 0) { 
     updateWorld(); 
    } 
    iShouldStillUpdateWorld = checkIfIShouldUpdateWorld(); 
} 

이것은 단순히 루프에 앉아서 20 밀리가 통과했는지 확인합니다. 그렇다면, 귀하의 updateWorld() 함수를 호출 한 다음이 프로세스를 반복하여 계속해야하는지 점검합니다.

+0

'updateWorld()'가 20 밀리 초 미만으로 실행되면 일시 중지하지 않고 다시 실행하게됩니다 ... 또한 질문을 읽는 방식으로 끝까지 20 밀리 초를 기다려야합니다 'updateWorld()'와 다음의 시작, 즉 매 20 밀리 초가 아닙니다. –