기본적으로 화면 (1 인칭)을 돌며 실행할 수있는 학습용으로 프로그램을 작성했습니다 (C++에서는 gl/glut을 사용함). 장면. 나는 다른 컴퓨터에서 실행하려고하고 속도는 완전히 다른, 그래서 나는 주제에 대한 검색 나는 현재이 같은 일을 해요 :어떤 컴퓨터에서든 동일한 속도로 프로그램을 실행하는 것에 관한 질문
유휴 기능 :
start = glutGet (GLUT_ELAPSED_TIME);
double dt = (start-end)*30/1000;
<all the movement*dt>
glutPostRedisplay();
end = glutGet (GLUT_ELAPSED_TIME);
표시 기능 :
를<rendering for all objects>
glutSwapBuffers();
내 질문은 : 적절한 방법입니까? 유휴 기능 후 장면이 제대로 표시되고 있습니까?
glutSwapBuffers() 전에 end = glutGet (GLUT_ELAPSED_TIME) 배치를 시도했지만 변경 사항을 알지 못했지만 glutSwapBuffers() 이후에 배치하면 속도가 느려지고 때로는 중지되기도합니다.
편집 : 방금 생각한 방식으로 모든 드로잉이 끝나고 운동 업데이트가 끝난 후부터 idle()이 곧 호출 될 것이라고 생각한 것 같습니다. display()가 끝나면, 여기에 설명되지 않은 유일한 시간은 컴퓨터가 모든 동작을 수행하는 데 걸린 시간이라는 것입니다. (어떤 거의 아무것도해야합니까?)
죄송이 너무 혼란 경우 .. 미리
감사합니다.
GLUT. http://www.opengl.org/resources/libraries/glut/ – kennytm
'80 년대 후반에 그들이했던 것과 그게 바로 오래된 게임을 할 때 상황이 가벼운 속도로 움직이는 이유입니다. 아아, 그리고 그 이유는 악명 높은 "터보"버튼. 컴퓨터가 너무 빠르면 터보를 꺼서 느리게 재생할 수 있습니다. –
@ Eric LOL - 나는 터보 버튼이 무엇인지 알지 못했다! 마침내 20 년이 지난 후에 저는 답을 얻었습니다. :) –