purebasic.info

PureBasic forum
Текущее время: Ср сен 19, 2018 8:26 am

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: [Готово] Узнать направление мыши
СообщениеДобавлено: Вт янв 19, 2016 8:48 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Вс дек 09, 2012 9:02 pm
Сообщений: 771
Откуда: Дагестан
Благодарил (а): 0 раз.
Поблагодарили: 11 раз.
Пункты репутации: 0
Кто нибудь знает, как узнать направление мыши то есть влево или в право?
если известено
left
right
mouseX
click
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
OpenWindow(0, 100, 100,700,100 ,"Canvas Double Sliders",   #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
left = 0
Right = 700
CanvasGadget(1,0,0,Right,100)
Repeat
  Event = WaitWindowEvent()
  If Event = #PB_Event_Gadget
    If EventType() = #PB_EventType_LeftButtonDown
      click = mouseX
     
    ElseIf EventType() = #PB_EventType_MouseMove
      mouseX = WindowMouseX(EventWindow())
     
      If click
        If click > mouseX
          Debug "влево "
          click =  click - (click - mouseX)
        ElseIf click < mouseX
          Debug "вправо "
          click = click + (mouseX - click)
        Else
          Debug 999999999999
        EndIf
      EndIf
     
    EndIf
  EndIf
 
Until Event=#PB_Event_CloseWindow
End  


Вроде получилось :)


Последний раз редактировалось mestnyi Ср янв 20, 2016 7:59 pm, всего редактировалось 1 раз.

Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Ср янв 20, 2016 6:57 am 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Чт дек 17, 2009 4:49 pm
Сообщений: 1230
Откуда: г. Ангарск
Благодарил (а): 2 раз.
Поблагодарили: 15 раз.
Пункты репутации: 10
mestnyi
Какой смысл в этом коде?
Код:
1
click=  (click + mouseX) - click


Код:
1
click = click + (mouseX - click)


_________________
.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Ср янв 20, 2016 11:46 am 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Вс дек 09, 2012 9:02 pm
Сообщений: 771
Откуда: Дагестан
Благодарил (а): 0 раз.
Поблагодарили: 11 раз.
Пункты репутации: 0
Как это? какой смысль разве не видно :shock:
Вы запускали пример?
Первом случае вычитиваю разницу
А во втором добавляем вроде так. :D
Согласен первый вроде можно было записать click = mousex


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Ср янв 20, 2016 2:06 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Чт дек 17, 2009 4:49 pm
Сообщений: 1230
Откуда: г. Ангарск
Благодарил (а): 2 раз.
Поблагодарили: 15 раз.
Пункты репутации: 10
mestnyi писал(а):
Согласен первый вроде можно было записать click = mousex

Ты меня прям в ступор ввёл, а что по твоему должно получиться во втором?

_________________
.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Ср янв 20, 2016 2:41 pm 
Не в сети
профессор

Зарегистрирован: Вс июн 10, 2012 8:18 am
Сообщений: 1294
Благодарил (а): 60 раз.
Поблагодарили: 49 раз.
Пункты репутации: 14
lakomet писал(а):
Ты меня прям в ступор ввёл, а что по твоему должно получиться во втором?

Ну раз там разница, то тут, полагаю, должна быть сумма :D


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Ср янв 20, 2016 4:42 pm 
Не в сети
профессор

Зарегистрирован: Вс авг 31, 2014 12:11 am
Сообщений: 433
Благодарил (а): 50 раз.
Поблагодарили: 20 раз.
Пункты репутации: 10
lakomet, в обоих случаях одно и то же. Это же очевидно. От перестановки слагаемых сумма не меняется.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Ср янв 20, 2016 4:44 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Чт июн 25, 2009 1:02 pm
Сообщений: 2285
Откуда: Russia — Belarus
Благодарил (а): 6 раз.
Поблагодарили: 72 раз.
Пункты репутации: 11
Можно упростить:
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
If OpenWindow(0, 0, 0, 220, 220, "CanvasGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  CanvasGadget(0, 10, 10, 200, 200)
  Repeat
    Event = WaitWindowEvent()
    If Event = #PB_Event_Gadget And EventGadget() = 0
      If EventType() = #PB_EventType_MouseMove
        cur.i = GetGadgetAttribute(0, #PB_Canvas_MouseX)
        If cur < prev
          Debug "left"
        ElseIf cur > prev
          Debug "right"
        EndIf
        prev.i = cur
      EndIf
    EndIf
  Until Event = #PB_Event_CloseWindow
EndIf
 


_________________
EnableExplicit User


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB