нужно каждый кадр поворачивать камеру, если двинулась мыш. Делаю так:
Mouse:=GetWorldMousePos; ShiftX:=Mouse.X-Center.X; ShiftY:=Mouse.Y-Center.Y; SetWorldMousePos(Center.X,Center.Y);
Если Center находится за пределами окна, то все ништяк. Но если перенести Center в центр окна(где ему самое место), то мышка перестает работать. ДЛя того, чтобы ShuftX/YT стал отличным от 0, нужно дергать мышь очень сильно. Да и то срабатывает через раз. С чем это может быть связано? Видимо я не правильно понял, как работать с XQueryPointer У окна событие POinterMotion отключено.
Procedure SetWorldMousePos(X,Y:integer); begin XWarpPointer(hXDisplay,0, hXWindow,0,0,0,0,X-WndX,Y-WndY); end;
Function GetWorldMousePos:TPoint; var w1,w2:TWindow; rx,ry,m:integer; begin XQueryPointer(hXDisplay,hXWindow,@w1,@w2,@rx,@ry,@XMousePos.X,@XMousePos.Y,@m); Result.X:=rx; Result.Y:=ry; end;