2011-10-07 10 views
0

나는 XNA를 사용하여 C#에서 놀랍도록 간단한 뱀 게임을 만들고 있습니다. 문제는 내가 스프라이트를 증가 시키지만 가능한 한 빨리 움직이지 않기를 바란다는 것입니다. 스프라이트는 16x16 픽셀이기 때문에 16 픽셀 씩 이동합니다. 이 아름답게 작동점진적으로 스프라이트를 이동하는 방법

playerPosition.X += 16; 

하지만 놀라운 속도로 이동 : 현재의 방향이 맞다면 예를 들어,이 라인이 실행됩니다. 어떻게하면 느리게 움직일 수 있습니까? 1/2 초마다 16 픽셀처럼.

답변

0

마지막으로 XNA를 사용한 이후로 오랜 시간이 걸렸지 만 게임 루프에서 내가 수행 한 작업에서 본질적으로 마지막 작업 이후 시간이 경과 한 속성에 대한 액세스 권한을 가지고 있음을 기억합니다. 이것을 사용하고 16 픽셀 이동을 줄여서 두 번째 부분에서와 같이 이동해야합니다.

대부분의 경우 60으로 나누고이를 새로운 이동 속도로 사용하고 매우 안전 할 수 있습니다. 그래서 1 초에 16 픽셀을 이동하려는 경우 프레임 당 픽셀 이동에 대해 16/60이됩니다.

0

"마지막 이동 이후 시간"의 내부 카운터를 유지하고 모든 프레임에 추가 할 수 있으며 지정한 임계 값을 통과하면 이동하고 카운터를 재설정합니다. 당신이 마지막으로 Update 경과 시간을 결정하는 데 사용할 수있는 GameTime 객체의

Game.Update 패스가 호출되었다.

관련 문제