Хотелось сделать, чтобы пользователь мог перемещать и поворачивать камеру, однако что-то сделал не так, и камера ведет себя совсем не так как надо. Если двигается более менее нормально (хотя тоже не так как должна), то с поворотами совсем все плохо: камера просто трясется и никак не реагирует на движение мыши. Может кто-нибудь сказать, что я делаю не так или если все не так, каким образом можно добиться вращения и перемещения камеры?
Заранее спасибо.
procedure CursorMove;
var
p: TPoint;
begin
GetCursorPos(p);
xAngle:=xAngle+(p.x-(ScrX div 2));
yAngle:=yAngle+(p.y-(ScrY div 2));
SetCursorPos((ScrX div 2),(ScrY div 2));
end;
................................................................................ ........
vUpVec:=D3DXVECTOR3(0.0, 1.0, 0.0);
vEyePt.x := xa;
vEyePt.z := za;
vEyePt.y := ya;
CursorMove;
vLookatPt.x := sin(xAngle)*Sin(yAngle);
vLookatPt.z := cos(xAngle)*sin(yAngle);
vLookatPt.y := cos(yAngle);
D3DXMatrixLookAtLH(View, vEyePt, vLookatPt, vUpVec);
pD3DDevice.SetTransform(D3DTS_VIEW, View);