2014-04-23 4 views
0

1 초 지연 후 2 초마다 개체를 스폰하려고합니다. 그러나 내 시도는 1 초 지연 후에 개체를 생성하지만 예외적으로 빠른 과거 (즉, 2 초마다 훨씬 더 자주 발생)합니다. 내 타이머 작업이 너무 가까이있는 물체를 산란시키는 이유를 알 수 없습니다. 어떤 도움이라도 좋을 것입니다.libGDX 타이머 - 일정 오류

private Array<Rectangle> spacebars; 

public void spawnSpacebar() 
{ 
spacebar = new Rectangle(); 
spacebar.x = 800;    
spacebar.y = MathUtils.random(0, 480-64); 
spacebar.width = 64; 
spacebar.height = 64; 
spacebars.add(spacebar); 
} 

Timer.schedule(new Task() 
{@Override 
public void run() 
    { 
    spawnSpacebar(); 
    } 
} 
, 1 // (delay) 
, 2 // (every x seconds) 
); 

답변

0

참고 :이 답변을 작성한 후에는 LibGDX 타이머 클래스를 사용하려고합니다. 이 경우, java.util.Timer가 아닌 LibGDX Timer를 사용하고 있는지 확인하십시오.

schedule()의 매개 변수가 밀리 초 단위 인 것처럼 보입니다.

공공 무효 스케줄 (TimerTask를 작업, 긴 지연, 오랜 기간)

매개 변수 : 자바 documentation에서 작업 - 작업을 예약 할 수 있습니다. 지연 - 작업을 실행하기 전의 밀리 초 단위 지연. 기간 - 연속 된 작업 실행 사이의 시간 (밀리 초)입니다.

따라서 1과 2 대신 1000과 2000을 전달하십시오.

+0

안녕하세요 바로 연결 - 확실히 LibGDX 타이머 클래스를 사용하고 있습니다. 나는 또한 작동하지 않는 1과 2 대신에 1000과 2000을 시도했다. 확인을 위해 지연이 잘 작동하는 것처럼 보일 수 있지만 "모든 x 초"에 전달하는 숫자는 매우 빠른 스폰 속도를 나타내는 것으로 보입니다. 흥미로운 점은 2를 "매 x 초"에 전달할 때 스폰 속도가 실제로 매우 빠른 속도에서 실제로 빠르게 증가한다는 것입니다. 비교하여 2000을 "x 초마다"전달할 때 스폰 속도는 빠르게 증가하지는 않지만 통과 2와 거의 같은 시작 속도로 생성됩니다. – jdubbing

+0

Timer.schedule 호출이 루프에없는 것은 확실합니까? 반복적으로 전화하는거야? 이는 초기 지연 작동을 설명하지만 스폰 빈도는 매우 자주 나타납니다. – Barodapride

+0

감사! 너는 옳았 어. Timer.schedule이 반복적으로 실행되는지 여부를 알 수 없기 때문에 다른 방법으로 잘라내어 붙여 넣습니다. 그것은 이제 매력처럼 작동합니다. 다시 건배. – jdubbing