2008-12-31 4 views
4

C# WinForms를 사용하여 내 XNA 게임용 레벨 작성기를 만듭니다. 필자는 MSPaint와 같은 연필 도구를 사용하여 페인트 할 수있는 타일 눈금이 있습니다. 문제는 마우스를 빠르게 끌 때 (ish) 줄을 페인트 할 때 타일을 건너 뛰는 것입니다.MouseMove 이벤트가 너무 느립니다.

구글에서 그림을 그리기 위해 스레드를 생성한다고 말한 한 가지 방법을 사용해 보았지만 도움이되지 않았습니다.

아이디어가 있으십니까?

+0

관련 항목 http://stackoverflow.com/questions/3347483/writing-a-paint-program-a-la-ms-paint-how-to-interpolate-between-mouse-move-eve – kervin

답변

6

OTTOMH, 마우스의 마지막 점을 추적 할 수 있으며 MouseMove 핸들러에서 직선 운동을 취하고 마지막 점과 현재 점 사이의 모든 타일을 결정할 수 있습니다. 내 생각 엔 사용자가 마우스를 매우 빠르게 움직이는 경우를 처리하기 위해 충분한 MouseMove 이벤트를 발생시키지 않을 가능성이 높습니다.

+0

정확합니다. MouseMove는 마우스가 움직이는 모든 픽셀에 대해 보장되지 않습니다. 가장 좋은 방법은 마지막 점에서 현재 점까지 선을 그리는 것입니다. 사용자가 세부 사항을 원할 경우 더 느리게 그릴 수 있으므로 이벤트를 더 가깝게 만듭니다. – OwenP

+0

마우스가 '빠르게 움직이는'경우는 이벤트가 더 빨리 발생하기 때문이 아닙니다. 마우스가 매번 더 많은 픽셀을 이동시키기 때문입니다. 커서 자체는 도중에 모든 픽셀에 그려지지 않습니다. – configurator

관련 문제