Компьютерные книги
Главное меню
Главная Поиск по сайту Добавить материал О нас Карта книг Карта сайта
Реклама
computersbooks.net -> Добавить материал -> Графика -> Гончаров Д. -> "DirectX 7.0 Для программистов" -> 141

DirectX 7.0 Для программистов - Гончаров Д.

Гончаров Д., Салихо Т. DirectX 7.0 Для программистов — Спб.: Питер, 2001. — 528 c.
ISBN 5-318-00173-4
Скачать (прямая ссылка): dirext7dlyaprogrammistov2001.djvu
Предыдущая << 1 .. 135 136 137 138 139 140 < 141 > 142 143 144 145 146 147 .. 229 >> Следующая

Структура DIM0USESTATE2 отличается от структуры DIM0USESTATE лишь тем, что последнее поле является массивом из 8 элементов, и, следовательно, содержит информацию о состоянии восьми кнопок. Обработка этих кнопок выполняется аналогично.
Рассмотрим пример непосредственного опроса мыши. В нем проверяются на нажатие левая и правая кнопки мыши и отслеживается изменение координат мыши. Проверку на потерю захвата устройства (код ошибки DIERRINPUTLOST) можно произвести тем же способом, что и для клавиатуры — проанализировать код возврата и, в случае необходимости, выполнить повторный захват устройства.
DIMOUSESTATE ms;
HRESULT hRet;
hRet - pDIMouse->GetDev1ceState(sizeof(DIMOUSESTATE). &ms); if( hRet—DIOK)
{
if (ms.rgt>Buttons[0] & 0x80)
//Нажата левая кнопка if (ms.rgbButtons[l] & 0x80)
//Нажата правая кнопка if ((ms.lX!-0L)&&(ms.lY!-0L))
//Произошло перемещение мыши
Г
Подводя итоги
В этом уроке мы научились:
0 Применять компонент Directlnput для получения пользовательского ввода от клавиатуры и мыши.
0 Пользоваться интерфейсами IDirectInput7 и IDi rect InputDevice7.
0 Использовать непосредственные и буферизированные данные.
0 Применять опрос устройства и получать оповещения.
Программирование УРОК нестандартных устройств ввода
В этом уроке мы рассмотрим возможности Directlnput по управлению устройствами, считающимися нетрадиционными для обычной конфигурации компьютера. К таким устройствам относится, например, джойстик. Также будут рассмотрены особенности программирования устройств с обратной связью. Программный пример данного урока демонстрирует получение пользовательского ввода от джойстика.
Использование джойстика
На первый взгляд, использование джойстика в программе не должно вызывать каких-либо проблем. В конце концов, для работы с ним используются те же самые интерфейсы IDirectInput7 и IDirectInputDevice7, что и для работы с клавиатурой и мышью. Более того, для работы с джойстиком могут применяться и применяются те же самые способы получения данных (опрос или оповещения), а также буферизированные и непосредственные данные. Однако ввиду того, что джойстик не относится к базовой компьютерной конфигурации и сам по себе является более сложным устройством чем, к примеру, мышь, его использование в программе сопряжено если не с трудностями, то как минимум с дополнительными усилиями со стороны программиста. То есть при использовании в программе джойстика необходимо выполнять ряд шагов, которые являются необязательными для клавиатуры и мыши. К таким шагам относятся:
О Получение списка доступных устройств ввода.
О Получение списка объектов, из которых состоит конкретное устройство ввода.
О Определение возможностей выбранного устройства ввода.
О Изменение отдельных свойств устройства ввода.
328
Урок 11 • Программирование нестандартных устройств ввода
Большая часть из перечисленных шагов при использовании мыши или клавиатуры, как правило, опускается. Это оправдывается тем, что данные устройства, являясь обязательными для обычной конфигурации компьютера, обладают предсказуемым поведением и более-менее предсказуемым внутренним устройством. Учитывая их предсказуемость, Directlnput может обеспечить полноценное управление этими устройствами, сведя усилия программиста по их настройке к минимуму. Для нестандартных устройств, таких как джойстик, приходится выполнять перечисленные шаги явно, так как внутреннее строение, внешний вид и (самое главное!) способы использования нестандартных устройств очень сильно отличаются друг от друга. И, следовательно, Directlnput не может обеспечить для них «стандартного» поведения, поскольку его просто нет. Даже те устройства, которые по традиции все еще называются джойстиками, зачастую имеют между собой совсем мало общего и практически не похожи друг на друга внешне. При рассмотрении этого класса устройств большинство авторов в основном описывают конкретные модели от конкретных фирм-производителей. И, несмотря на все многообразие данных устройств, Microsoft сделала попытку учесть в Directlnput их отличительные особенности, то есть обеспечить функционирование наибольшего количества джойстиков самой различной конструкции.
Чтобы продемонстрировать радикальные отличия между джойстиками разных фирм (и даже между разными моделями одной фирмы), стоит привести пару фотографий этих устройств, представленных на рис. 11.1.
Рис. 11.1. Различные модели джойстиков
Однако кое-что общее между ними все-таки имеется.
О Обычно на джойстиках присутствует специальное колесико или рычажок, позволяющий имитировать возможности оси Z. Он обычно называется throttle или slider.
О Многие джойстики имеют контроллер направления, иначе называющийся переключателем вида благодаря той функции, которую он обычно выполняет. Этот переключатель может иметь вплоть до девяти различных положений, одно из которых — центральное. В документации он именуется как hat switch или Point-Of-View controller (POV).
Использование джойстика
329
О Для указания поворота вокруг оси Z используются специальные педали, (rudder) либо, в случае их отсутствия, эта функция осуществляется за счет поворота ручки джойстика вокруг вертикальной оси.
Предыдущая << 1 .. 135 136 137 138 139 140 < 141 > 142 143 144 145 146 147 .. 229 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

Эком "Microsoft Excel 2000 шаг за шагом Русская версия самоучитель " (Самоучитель)

Поляков А.Ю. "Методы и алгоритмы компьютерной графики в примерах Vizual C++" (Графика)

Баяковский Ю.М. "Графическая библиотека Open GL " (Графика)

Валиков А. "Технология " (Языки программирования)
Авторские права © 2013 ComputersBooks. Все права защищены.