mam taki mały programik i obracanie sceny napisałem sam(nie ufam funkcjom obcych ludzi) i mam trzy zmienne-statek[0].r_x,statek[0].r_y,statek[0].r_z. mam taki kodzik na ustawianie kursora myszy na środku okna
if(active==1)
{
GetClientRect(hwnd,&windowsize);
windowdistance.x=(windowsize.left+windowsize.right)/2;
windowdistance.y=(windowsize.top+windowsize.bottom)/2;
MapWindowPoints(hwnd,NULL,&windowdistance,1);
gamemouse_x+=mouse_x-lmouse_x;
gamemouse_y+=mouse_y-lmouse_y;
if (gamemouse_x>90)
{
gamemouse_x=90;
}
if (gamemouse_x<-90)
{
gamemouse_x=-90;
}
statek[0].r_y=gamemouse_x;
statek[0].r_x=gamemouse_y;
SetCursorPos(windowdistance.x,windowdistance.y);
ShowCursor(0);
}
else
{
ShowCursor(1);
}
oraz takie coś dopisałem w winproc by obliczać przesunięcie myszki
case WM_MOUSEMOVE:
{
lmouse_x=mouse_x;
lmouse_y=mouse_y;
mouse_x=LOWORD( lParam );
mouse_y=HIWORD( lParam );
}
niestety, program oblicza przesunięcie, potem przesuwa i znowu oblicza przesunięcie... wychodzi na 0... próbowałem zrobić blokadę, która po przesunięciu kursora na środek okna blokowała obliczanie przesunięcia (stare dane zastępowała nowymi nie licząc różnicy)ale to nie działało... jak to zrobić?