Программирование игр для Windows. Советы профессионала


Калибровка джойстика


Теперь разберемся с калибровкой джойстика. Как я уже говорил ранее, резуль­тат, который мы получим от чтения джойстика в цикле, будет разным на разных ПК. На одних компьютерах значения по оси Х окажется в пределах от 0 до 255, на других - от 0 до 10000.

Таким образом, нам надо нормализовать эти данные или масштабировать их. Стандартным приемом в данных случаях может служить калибровка джой­стика самим игроком в setup'e игры. Во время этой процедуры игрок двигает джойстиком, а программа считывает и запоминает данные калибровки где-ни­будь на диске для дальнейшего использования.

Для того чтобы проанализировать джойстик, программа должна:

§          Найти значения максимального и минимального отклонения по осям Х и Y;

§          Сохранить эту информацию;

§          Использовать полученные данные для выяснения, на какой угол игрок отклонил ручку джойстика.

Например, джойстик был откалиброван и мы обнаружим, что ось Х имеет значения от 0 до 255. Затем, если значение джойстика, например, по координате Х окажется равным 128, то можно с уверенностью сказать, что рукоятка находится в среднем положении (кстати, в процессе калибровки средняя пози­ция также запоминается).

Осталась одна маленькая деталь, о которой стоит сказать — это детекти­рование джойстика (то есть проверка его наличия). Обычная техника детекти­рования такая: в цикле опрашивается порт джойстика в течение определенного времени. Но надо сказать, что с помощью функций BIOS это можно сделать более надежно. Если после вызова функции значения по всем координатам равны 0, то никакого джойстика нет.

Я думаю, что мы уже сказали о джойстиках все. Теперь напишем небольшую программку, в, которой используем функции из Листингов 3.1 и 3.2. При старте она просит игрока:

§          Подвигать джойстиком;

§          Установить джойстик в среднее положение;




Начало  Назад  Вперед



Книжный магазин