{{notification.text}}

MirGames

26.01.07 23:23
0
люди подскажите как вообще работать с мышью и нажатием на кнопки мыши???
лучше обясните как отслеживать движение?? и как определять угjл при этом???
#1
Mirage
27.01.07 00:01
0
А зачем тебе угол? И вообще угол между чем и чем?
А отслеживать движение можно по-разному. Можно через DirectInput. Можно ловить сообщения WM_MOUSEMOVE. Можно просто вызывать GetCursorPos().
Кнопки и того проще. GetAsyncKeyState(VK_LBUTTON).
Описание соотв. функций см. в хелпе.
#2
Студент
27.01.07 11:45
0
lans
Насколько я понял тебе нужен угол между осью Oy (пусть будет выходить из конца мышки к её переду), и линией соединяющей предыдущую координату мышки, и насотящую координату?

Тогда тебе к тригонометрии. На сайте была статья.
#3
аксакал
27.01.07 18:48
0
petyakurochkin
Откровенный бред. Где у мышки перед? В твоём левом глазу или на твоей переносице? Тогда вычислять расстояние до переда придётся, а тут уже сенсоры движения юзера в помощь...

Y := Y + MouseOffset.X * k;
#4
Студент
28.01.07 00:26
0
XProger
Аналогично - а где в этом тексте верх? На твоём лбу или переносице? Я думаю, что у мышки перед там, где расположены её кнопки.

Редактировано.
Более точно, для придирчевых:
Как определить где у вашей мышки передняя сторона? Это очень легко! Двигайте мышку так, что бы координата курсора изменялась по оси Y, только в положительную сторону. И не изменялась по оси X. Заметьте, что вы двигали мышку по вектору, который можно провести из центра мышки. Припересечении этого вектора, проходящего через центр мышки, со стороной, скажет Вам, что пересекаемая сторона является передней.
Отредактировано: 28.01.07 00:33
#5
28.01.07 02:07
0
так люди тригонометрию я незнаю но синусы косинусы тангенсы и кактагенсы понимаю хорошо
так что ответте на вопрос как отсеживать движение мыши и высчитывать предконечное и конечное положение мышки
Цитата(Mirage @ Вчера, 20:01)
[snapback]47987[/snapback]
А зачем тебе угол? И вообще угол между чем и чем?

угол нужен что б отслеживать поворот объекта
Цитата(Mirage @ Вчера, 20:01)
[snapback]47987[/snapback]
А отслеживать движение можно по-разному
как???поподробнее
WM_MOUSEMOVE-как им пользоваться
GetCursorPos-позиция курсора относительно какой оси???
Отредактировано: 28.01.07 02:10
#6
Студент
28.01.07 16:34
0
lans

http://msdn.microsoft.com/library/default....etcursorpos.asp

Как видно требует указатель на POINT. По-моему в Delphi это Ppoint, что-ли? Так вот эта структура имеет, два параметра. Оси X и Y.

Просто создаешь эту структуру, и даешь функции на неё указатель, а она тебе её заполняет. Что непонятного?
Кстати ось Ox идёт справа налево и её начало в самой левой точке экрана. Ось Oy идёт сверху вниз. Её начало в самой верзнейй точке экрана.

Тебе всегда даются (!!!)точные(!!!) координаты, а не относительно предыдущей позиции, как это может быть сделано в DirectInput. Поэтому не забывай смеать каждый раз курсор в центр!
#7
28.01.07 17:40
0
Цитата
По-моему в Delphi это Ppoint, что-ли?

В дельфи не нужно передавать указатель :)
Передавать нужно саму структуру TPoint.
#8
28.01.07 18:25
0
GetCursorPos сэти м я разобрался всё коорднаты находит всё угол тоже нашёл через юнит мас и моим небольшим знанием геометрии
да но как мне прос читать по зажатой левой или правой точки мыши
#9
Студент
28.01.07 18:49
0
Цитата(lans @ Сегодня, 11:25)
[snapback]48080[/snapback]
да но как мне прос читать по зажатой левой или правой точки мыши

Просчиать по зажатой левой или правой кнопке мыши, что? Что именно тебе просчитать надо?
#10
29.01.07 01:28
0
если зажата левая кнопка то ........
если зажата правая кнопка то ..........
#11
29.01.07 20:23
0
lans
Ты невнииательно читаешь тему :)
Цитата(Mirage @ 26.01.2007 - 17:01)
[snapback]47987[/snapback]
Кнопки и того проще. GetAsyncKeyState(VK_LBUTTON).


Вот еще один способ:
Когда нажимается левая кнопка, окну приходит сообщение WM_LBUTTONDOWN. Когда она разжимается - WM_LBUTTONUP.
Соответственно для правой WM_RBUTTONDOWN и WM_RBUTTONUP.

#12
Студент
29.01.07 23:05
0
lans
Юзай DirectInput в буферизироавнном режиме, там кажись есть то, что ты хочешь
#13
01.02.07 20:24
0
visual мне как раз эти сообщения и нужны :)
VK_LBUTTON-чё это (какие могут быть там значения)
#14
аксакал
01.02.07 21:47
0
Мужайтесь мужЫки!!! Нужно воспитывать новое поколение, на что у меня сил походу нет )))
#15
Студент
01.02.07 23:07
0
lans, это сообщения =) Там никаких дополнительных значений при прихожде WM_LBUTTONDOWN нет =)
Просто если оно пришло, то ты ставишь в своём массиве отметку, что кнопка сейчас нажата, а при приходе WM_LBUTTONUP ставишь что она отжата. Вот и всё. Опять же лучше используй DINPUT и не откладывай его в долгий ящик.
Отредактировано: 01.02.07 23:08
#16
04.02.07 03:37
0
petyakurochkinотложу в не долгий и буду изучать ком(COM)
#{{post.Index}}
{{post.Author.Login}}
{{post.CreatedDate | date:'dd.MM.yy HH:mm'}}
{{post.VotesRating}}
Отредактировано: {{post.UpdatedDate | date:'dd.MM.yy HH:mm'}}