언어/기타

0.0초를 다룰때 조심할점

by A. 미스릴 posted Mar 13, 2009
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄 수정 삭제

제가 실험을 해봤습니다


정기적으로 병렬 처리 이벤트가 있어서 0.0초 이벤트를 붙이고 변수 를 1씩 가산시켜 루프를 돌립니다.


그후 그 변수가 0이 된 후 10.0초 후 그 변수를 조사하는 이벤트를 만들어 변수가 가산된 수를 찾아냅니다.


 


0.0초 x 300 = 10.0초


0.0초 2개 x 200 = 10.0초


0.0초 3개 x 150 = 10.0초


0.0초 4개 x 120 = 10.0초


0.0초 5개 x 100 = 10.0초


그리고 0.0초 6개는...


0.0초 6개 x 857 = 100.0초


이네요. 어디까지 나가는지는 몰겠고 ㅡ.ㅡ;;;


여기서 중요한 것은


0.0초 x 300 = 10.0초란 것은 10/300초. 1/30초가 됩니다. 결국 2/60초가 되는 겁니다.


0.0초 2개 x 200 = 10.0초는 10/200 = 1/20 = 3/60초.


0.0초 3개 x 150 = 10.0초는 10/150 = 1/15 = 4/60초.


이상하죠?


1/60초, 2/60초... 가 아니라 2/60초, 3/60초... 이렇게 루프가 도니까요.


 


정기적으로 병렬 처리를 할 떄, 0.0초를 붙이면 1/60초마다 1번씩 루프시킨다고 생각할 수 있지만, 그렇지 않습니다.


왜냐면 정기적 루프 처리가 있으면, 업데이트를 프레임당 1번씩 하기 때문에 1/60초는 백그라운드로 돌게 됩니다.


그러니까 실제로 정기적 병렬 처리 이벤트를 만들고 0.0초를 맨 위에 올려 놓으면 1/60초가 아니라 2/60초마다 이밑의 이벤트를 쓰게 되는 겁니다.


타이머를 이것 때문에 잘못 하는 일이 없도록 합시다 ㅡ.ㅡ;;;