Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как работать с мышью [Delphi]


Ксандр ©   (2007-05-01 17:01:00) 

Здрасте, у меня такая проблема есть модель куба. как сделать так что бы при движении мыши влево и в право куб тоже двигался.
Как вращять куб я знаю, но как это делать когда мышь двигаеться в лево и в право, я не знаю.


Rial   (2007-05-01 19:05:00) [1]

1. Делаешь обработчик передвижения мыши.
2. В обработчике у тебя есть координаты мыши.
Вот их каждый раз запоминай во временных переменных.
3. Находишь разницу между предыдущим значением и текущим,
на него и изменяешь угол.

Если тут что то такое непонятное, то я самоликвидируюсь,
лень писать еще подробнее.


Ксандр   (2007-05-01 18:15:00) [2]

Простите но я немогу разобраться в этом коде. Если вас не затруднит то обьясните пожалуйста подробно что нужно делать.
У меня есть переменная "Angel" которая уменьшается если мышь движеться вправо и увеличевается если влево


Rial   (2007-05-01 17:30:00) [3]

либо собитые OnMouseMove
либо, если на API

function TRialWindow.WindowProc(Const Window : HWnd;  Message, WParam : Word;
                               LParam : LongInt) : LongInt;
...
Case Message of
...
 WM_MOUSEMOVE     : //Перемещение мыши
                  begin
                   FMouseX  := LoWord (lParam);
                   FMouseY  := HiWord (lParam);
                   If (@FOnMouseMove <> Nil)then
                    FOnMouseMove(Self, FMouseX, FMouseY,
                                                       wParam and MK_SHIFT    =  MK_SHIFT,
                                                       wParam and MK_CONTROL  =  MK_CONTROL,
                                                       wParam and MK_LBUTTON  =  MK_LBUTTON,
                                                       wParam and MK_RBUTTON  =  MK_RBUTTON);

А потом в обратчике просто запоминаешь последнее положение
и поворачиваешь на dX = NewX - OldX.


Наверх

Титульная страница Поиск, карта сайта Написать письмо