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

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

directinput.


Страницы:   1 2

beginner136 ©   (2005-05-07 18:45:00) 

Помогите с написанием проги, плиз!
Мне нужно чтобы по форме двигались две кнопки с использованием directinput. С меня респект


XProger   (2005-05-14 02:33:00) [1]

П7, а кто сказал что что-то мешает?


П7   (2005-05-14 01:23:00) [2]


> XProger ©   (12.05.05 22:05) [23]

хм... а что мешает то же самое запихнуть в VCL?


beg188   (2005-05-13 21:49:00) [3]

критику принял


Sphinx   (2005-05-12 23:24:00) [4]

> XProger ©   (12.05.05 22:05) [23]
:)


XProger   (2005-05-12 22:05:00) [5]

beginner136,
Гражданин, если бы Вы знали о существвании окон без VCL Вы бы не задавали столь неприличных вопросов...

Для Вас вполне сойдёт onKeyDown и onKeyUp события формы...


beginner136   (2005-05-09 13:28:00) [6]

2 xproger
WM_KEYDOWN : Keys[wParam] := true;
WM_KEYUP   : Keys[wParam] := false;
Это как и где понимать?)

А насчет DelphiX -
Ну я просто думал, там все так просто, компонент разместил, пару строчек написал (опять же - каких?:) ) и все готово...


Zak3D[@Tm]   (2005-05-09 11:09:00) [7]

beginner136 - DelphiX вещь немного устаревшая =), да и не может реализовать всех потребностей местного люда.


XProger   (2005-05-09 01:47:00) [8]

Sphinx, такими веами не пользуюсь и не надо то особо...
beginner136, я написал ;) DelphiX - а зачем?


beginner136   (2005-05-08 22:05:00) [9]

так ладно...
А что в программе нужно написать, чтобы она смотрела нажата ли какая-то определенная клавиша?

И, кстати, почему вы не используете DelphiX?


Sphinx   (2005-05-08 18:11:00) [10]

> XProger ©   (08.05.05 17:12) [16]
Кесарю - кесарево...

Если твой метод может заполнить следующую запись в реальном времени и именно в момент нажатия кнопки:
 PDIDeviceObjectData = ^TDIDeviceObjectData;
 DIDEVICEOBJECTDATA = packed record
   dwOfs: DWORD;
   dwData: DWORD;
   dwTimeStamp: DWORD;
   dwSequence: DWORD;
   uAppData: Pointer;
 end;
 TDIDeviceObjectData = DIDEVICEOBJECTDATA;


в частности поля dwTimeStamp & dwSequence.

DXSDK:

dwTimeStamp
System time at which the input event was generated, in milliseconds.

dwSequence
Microsoft DirectInput sequence number for this event. All input events are assigned an increasing sequence number. This enables events from different devices to be sorted chronologically.

Тогда я соглашусь - что DI не нужен совершенно...если конечно не сапера делаем...То есть зависит от конкретной задачи и конкретной реализации...


beginner136   (2005-05-08 17:47:00) [11]

хочешь сказать, что твой метод тоже имеет абсолютный контроль над клавиатурой?)


XProger   (2005-05-08 17:12:00) [12]

Это конечно всё хорошо, но я в своём новом проекте предвочёл не юзать DI, ибо никаких плюсов в этом не вижу по сути :)


var
Keys : array [0..255] of boolean;
...
procedure ResetKeys;
begin
ZeroMemory(@Keys, 255);
end;
...
WM_KEYDOWN : Keys[wParam] := true;
WM_KEYUP   : Keys[wParam] := false;
...
function KeyDown(idx: Byte): boolean;
begin
Result := Keys[idx];
end;


beginner136   (2005-05-08 15:57:00) [13]

у меня седьмая дельфа, так что все нормально... пошел искать directinput.dcu


Sphinx   (2005-05-08 14:47:00) [14]

> beginner136   (08.05.05 11:18) [13]
А с DelphiX и не скомпилирует. Он тут как говорится - из другой оперы.
Это написано с заголовками DX9 с сайта http://clootie.narod.ru/правда всё будет работать и с заголовками от DX8.
И еще...написано на Д7, так что если пользуешь версии ниже шестой - придетсе немного переработать.


beginner136   (2005-05-08 11:18:00) [15]

2Sphinx
Не компилится. грит, не найден DirectInput.dcu
(не смотря что у меня на Делфе стоит ДелфиХ...)


beginner136   (2005-05-08 11:02:00) [16]

2parovoZZ
с помощью клавы.


cyborg   (2005-05-08 10:38:00) [17]


>  [10] beginner136   (08.05.05 10:33)

У меня тоже есть :)


beginner136   (2005-05-08 10:33:00) [18]

%)
Пасиб)
з.ы. Однако, что странно. В разных источниках ВСЕ по разному написано. Например на podgoretsky.com 24 страницы про DI
На Gamedev - 3 абзаца, и все равно работает. Но только у них...


Sphinx   (2005-05-07 23:11:00) [19]

И еще забыл...
данные с мыши считываются непосредственно, а с клавиатуры - буфферизованно.


Sphinx   (2005-05-07 23:03:00) [20]

Из модуля uGameTypes.pasнужны:
 TMouseKeyStat = array[0..7] of Boolean;
 TKeyboardStat = array[0..255] of Boolean;

 DIKeyboardBuffer = 16;


Много лишнего, но показано почти всё что можно для работы с DI.
Разбирайся :)


Страницы:   1 2

Наверх

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