2012-10-05 7 views
0

크로스 실버 라이트/xna 응용 프로그램을 만들었으며 그 움직임이 부드럽지 않다는 것을 관찰했습니다.부드러운 움직임?

화면에서 구름을 이동하려고합니다.

업데이트 간격은 33ms마다 한 번입니다. 나는 ElapsedTime.Miliseconds != 33이라는 응용 프로그램 테스트를 실행 했으므로 절대로 안타니까, 33ms마다 실행됩니다.

나는 각각 33ms를 수행하는데, 나는 x 위치를 취하여 5.4 (float)를 빼서 원하는 속도를 얻는다.

그러나 나는 그 움직임이 부드럽고 지루하다고 느끼는 것을 관찰합니다.

답변

3

이 문제를 해결하는 가장 좋은 방법은 아닙니다. 지금 가지고있는 방식대로 컴퓨터의 사양에 따라 클라우드 이동이 다른 속도로 실행됩니다. 당신이해야 할 일은 경과 시간을 기준으로 구름을 움직이는 것입니다. 이 애니메이션에 관계없이 초당 프레임 수는 당신이 밖으로 펌프 수있는 방법 같은 모든 시간을 작동 할 것입니다 :

xPos -= elapsedTime.Miliseconds * moveSpeed; 

당신을 위해 작동하는 무언가에 moveSpeed ​​변수를 설정합니다.

+3

'속도 * 시간 = 거리'의 전형적인 경우. 이동 속도를 설정할 때 측정 단위를 유념하십시오. 밀리 초 단위로 곱하면, 곱하기가 제대로 작동하려면 밀리 세컨드 당 거리가 있어야합니다. –