Текущий архив: 2010.08.27;
Скачать: CL | DM;
ВнизTurn Найти похожие ветки
← →
Mr.Vlad (2007-08-27 00:04) [0]Подскажите пожалуйста. Я вращаю камеру вокруг объекта с помощью запоминания координат курсора, но когда курсур "упирается в край монитора", то вращение прекращается.
procedure TFEngine.ViewerMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
mdx:=x;
mdy:=y;
end;
procedure TFEngine.ViewerMouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
begin
Actor1.turn(x-mdx);
mdx:=x;
mdy:=y;
end;
Знаю, что нужно каждую секунду координаты курсора присваивать половине экрана, но mouse.CursorPos типа TPoint. Чему присваивать???
← →
ElectriC © (2007-08-27 00:45) [1]Может это?!
...
CurPos : TPoint; // координаты курсора
Width, Height : Integer; // размеры окна
Xi, Yi : Integer; // поворот камеры по осям x, y.
...
GetCursorPos(CurPos);
SetCursorPos(Width shr 1, Height shr 1);
Xi := ( CurPos.X - Width shr 1) / 1000 * 1.4;
Yi := (Height shr 1 - CurPos.Y) / 1000 * 1.4;
P.S. 1.4 - Скорость вращения камеры.
P.P.S. shr 1 аналогично div 2, только быcтрее.
← →
ElectriC © (2007-08-27 00:52) [2]Поправочка:
Xi := Xi + ( CurPos.X - Width shr 1) / 1000 * 1.4;
Yi := Yi + (Height shr 1 - CurPos.Y) / 1000 * 1.4;
← →
Mr.Vlad (2007-08-27 21:27) [3]Почти то.
Я как раз забыл процедуру SetCursorPos.
Написал в таймере(500) SetCursorPos(512, 384) и проблема решена.
СПАСИБО!!! БОЛЬШОЕ!!!
Страницы: 1 вся ветка
Текущий архив: 2010.08.27;
Скачать: CL | DM;
Память: 0.44 MB
Время: 0.057 c