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

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

Управление мышой [D5, Win95/98]


Some0ne. ©   (2002-07-27 00:16:00) 

Я тут игрушку свою пишу, и у меня возникла проблема: необходимо чтобы обзор по сторонам осуществлялся с помощью мыши(ну как в обычных 3Д игрушках). Как мне это сделать? Если брать координаты от события OnMouseMove, то при сильном повороте курсор сдвигается к краю экрана и дальнейший поворот не происходит! Помогите плиз....... =(


Some0ne.   (2002-08-04 02:41:00) [1]

Кстати, точно! Так я и сделаю! Огромное спасибо, SI-riuss!


SI-riuss   (2002-08-01 19:01:00) [2]

Покатит. Ты только пиши немного иначе. Перемещай мышака не тогда, когда доползешь до конца экрана, а постоянно, и не в противоположный угол, а в центр окна. Вначале фиксируешь на сколько грызун переместился, используешь это в своей проге, а затем перемещаешь его назад, в центр окна.
Я так писал, так еще круче.


Some0ne.   (2002-07-29 20:15:00) [3]

Спасибо!
Я как раз и подозревал что так и придется делать! Ну а к примеру, если приложение оконное??? Тут уже такой способ не покатит! =(


Proton   (2002-07-29 13:46:00) [4]

setcapture ?


NailMan   (2002-07-29 01:30:00) [5]

Именно так и делается, вот как у меня в игрухе сделано:


//Процедура считывания данных от игрока
Procedure Ля-ля-ля
begin
...
чтение курсора мыши DirectInput функциями

//Обрабротка положения курсора мыши для его "бесконечности"
GetCursorPos(MPoint);
if (MPoint.x<=0) and (Mpoint.x<LastMPos.x) then SetCursorPos(ScreenWidth-1,Mpoint.y);
if (MPoint.x>=ScreenWidth-1) and (Mpoint.x>LastMPos.x) then SetCursorPos(0,Mpoint.y);
if (MPoint.y<=0) and (Mpoint.y<LastMPos.y) then SetCursorPos(Mpoint.x,ScreenHeight-1);
if (MPoint.y>=ScreenHeight-1) and (Mpoint.y>LastMPos.y) then SetCursorPos(Mpoint.x,0);
...
Обработка нажатия кнопок мыша
...
GetCursorPos(LastMPos);
end;


В итоге когда курсор мыша выйдет за границы [0..ScreenWidth] [0..ScreenHeight], он выйдет с другой стороны экрана.


Some0ne.   (2002-07-29 00:14:00) [6]

Спасибо, конечно, только это все же не то, что мне нада........ В этом ДууМе все равно, когда курсор в край экрана упирается, то больше не повернуться..... У меня практически так как в этом примере и было сделано.. Не переставлять же мне курсов через ВинАПИ(хотя, скорее всего так и придется =( )
Мож знает кто нть другой способ???


Some0ne.   (2002-07-28 23:56:00) [7]

Пасиба, ща посмотрим....... =)


mazepa   (2002-07-27 00:19:00) [8]

Скачай с DelphiGFX->Game Source->Раздел 2->Doom
если разберешся %)


Наверх

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