Конференция "Игры" » Как работать с мышью [Delphi]
 
  • Ксандр (01.05.07 17:01) [0]
    Здрасте, у меня такая проблема есть модель куба. как сделать так что бы при движении мыши влево и в право куб тоже двигался.
    Как вращять куб я знаю, но как это делать когда мышь двигаеться в лево и в право, я не знаю.
  • Rial © (01.05.07 17:30) [1]
    либо собитые 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.
  • Ксандр (01.05.07 18:15) [2]
    Простите но я немогу разобраться в этом коде. Если вас не затруднит то обьясните пожалуйста подробно что нужно делать.
    У меня есть переменная "Angel" которая уменьшается если мышь движеться вправо и увеличевается если влево
  • Rial © (01.05.07 19:05) [3]
    1. Делаешь обработчик передвижения мыши.
    2. В обработчике у тебя есть координаты мыши.
    Вот их каждый раз запоминай во временных переменных.
    3. Находишь разницу между предыдущим значением и текущим,
    на него и изменяешь угол.

    Если тут что то такое непонятное, то я самоликвидируюсь,
    лень писать еще подробнее.
 
Конференция "Игры" » Как работать с мышью [Delphi]
Есть новые Нет новых   [134428   +41][b:0][p:0]