Difference between revisions of "GI.ReleaseMouse"
1>Admin (Created page with "{{infobox function |name=ReleaseMouse |object=Объект GI |caption=Общие функции объекта GI |type=1 |status=2 |db=0 |visual=1}} {{HeadLinks| * Mai...") |
m (1 revision imported) |
(No difference)
| |
Latest revision as of 07:53, 22 January 2025
| ReleaseMouse (Общие функции объекта GI) | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||
В зависимости от режима захвата мыши MouseMode, функция отображает ранее спрятанный курсор мыши, если захват был выполнен ранее.
Синтаксис
GI.ReleaseMouse()
Примеры
//Событие движения мыши и нажатия на клавиши
Function OnNewInput(aGI,СпУскор,ТипСобытия,Арг1,Арг2,Арг3,Арг4)
If ТипСобытия=0 Then
//Движение мыши -- обновить переменные поворота
//Арг2, Арг3 -- смещение мыши по X и Y относительно окна прорисовки
If aGI.MouseCaptured Then
СпУскор[4]:=Арг2-aGI.Width div 2;
СпУскор[5]:=Арг3-aGI.Height div 2;
EndIf;
ElseIf ТипСобытия=1 Then
//Нажатие мыши на экран, захватить мышь
aGI.CaptureMouse();
ElseIf ТипСобытия=11 Then //Клавиша нажата
If (Арг1=0x57)Or(Арг1=0x26) Then//W или стрелка вперед -- движение по Z
СпУскор[3]:=1;
ElseIf (Арг1=0x53)Or(Арг1=0x28) Then//S или стрелка назад -- движение по Z
СпУскор[3]:=-1;
ElseIf (Арг1=0x51)Or(Арг1=0x25) Then//Q или стрелка влево -- движение по X
СпУскор[1]:=-1;
ElseIf (Арг1=0x45)Or(Арг1=0x27) Then//E или стрелка вправо -- движение по X
СпУскор[1]:=1;
ElseIf (Арг1=0x20)Or(Арг1=0x41) Then//A или пробел -- прыжок
СпУскор[2]:=1;
ElseIf Арг1=0x1B Then//ESC -- отпустить мышь
aGI.ReleaseMouse();
EndIf;
ElseIf ТипСобытия=12 Then //Клавиша отпущена
If ((Арг1=0x57)Or(Арг1=0x26))And(СпУскор[3]=1) Then//Отменить движение по Z, если оно было инициировано W
СпУскор[3]:=0;
ElseIf ((Арг1=0x53)Or(Арг1=0x28))And(СпУскор[3]=-1) Then//Отменить движение по Z, если оно было инициировано S
СпУскор[3]:=0;
ElseIf ((Арг1=0x51)Or(Арг1=0x25))And(СпУскор[1]=-1) Then//Отменить движение по X, если оно было инициировано Q
СпУскор[1]:=0;
ElseIf ((Арг1=0x45)Or(Арг1=0x27))And(СпУскор[1]=1) Then//Отменить движение по X, если оно было инициировано E
СпУскор[1]:=0;
ElseIf _Or(Арг1=0x20,Арг1=0x41) Then//Отменить прыжок
СпУскор[2]:=0;
EndIf;
ElseIf ТипСобытия=21 Then//Потеря фокуса окном, отпустить мышь
aGI.ReleaseMouse();
EndIf;
EndFunction