Как играть в Quake с помощью сканера штрих-кодов
Вступление
Если вы пролили чай на свою любимую клавиатуру, если младший брат решил поиграть вашей мышью и утопил её в ванной это не повод чтобы отказываться от удовольствия игры в любимый Quake! На помощь Вам придёт мануал от «ДЦП Лабс» Выживание в экстремальных ситуациях.
Как играть в Quake без мыши и клавиатуры
Итак что делать нашему гипотетическому квакеру чтобы не склеить ласты от скуки без любимой гамы? Ответ невероятно прост и логичен. Конечно, нынешнее поколение вылупившееся из кабачковой икры хрен допрёт что нужно делать, поэтому это руководство и является таким ценным.
Первое что нужно, это какой-нибудь сканер штрих-кодов (Как, у Вас нет сканера штрих-кодов?). Нам подойдёт самый обычный сканер, например ccd-80s. Этот сканер является оптимальным в соотношении цена-производительность, поэтому так полюбился владельцам магазинов и магазинчиков. Выглядит это чудо так, как показано на фотографии слева. Для Квакера сканер так же вполне пригоден: удобно ложится в руку, кнопка scan находится в удобном для нажимания месте. Кнопка резиновая палец не соскакивает. В общем потянет. Тут нужно сказать, что сканер этот штука довольно продвинутая, то есть сделан на славу. Из чего следует, что пользоваться им довольно просто, подключить к компьютеру ничего не стоит. Сканер просто подключается между компьютером и клавиатурой. То есть включаем сканер в разъем для клавиатуры, а саму клаву в шнур сканера. Сканер не требует драйверов или какого-либо дополнительного программного обеспечения. По включении компьютера сканер уже работает. Смысл простой: При считывании с наклейки штрих-кода, сканер эмулирует нажатие этих клавиш на клавиатуре. Это значит что сканер можно использовать в любых приложениях, где используется ввод текста с клавиатуры. Конечно, нажатие стрелок эмулировать не удастся так как это не печатные символы.
Технические характеристики
Немного о технических характеристиках сканера: Ручной сканер, ширина считывания 80 мм, выдерживает падение с высоты 1,7 м., бесконтактное считывание с расстояния до 30 мм, универсальный декодер с интерфейсом RS-232 и "разрыв клавиатуры", вес без кабеля 115 гр, расширенные возможности программирования.
Алгоритм чтения | стандартный декодер |
Питание | DC 5V +10% |
Читаемые коды | UPC/EAN/JAN and Add-on 2/5, Code 39, Code 128, Codabar, ISBN, ISSN, China Postage, ITF 2/5, MTX 2/5, IND 2/5 |
Глубина поля | 0 30 mm |
Разрешение | >=0.127 mm |
Приёмник сигнала | ПЗС приемник штрих-кодов |
Индикатор чтения | Звуковой сигнал. Красный светодиод |
Интерфейс | В разрыв клавиатуры, RS-232 |
Разъем | DIN-5P/Mini DIN-6P/DSub-9P/AMP-9P (For WAND only) |
Программное обеспечение
Что нам нужно дальше? А всё просто! Вспоминаем что в кваке можно забиндить события на любую клавишу. Следственно эти клавиши нам и нужно считывать с сканером с наклейки. Ах да! Нам ещё понадобятся наклейки с клавишами. То есть со штрих-кодами клавиш. Тут особых проблем возникнуть не должно, где сканер там и принтер на котором печатаются штрих-коды с необходимым ПО. Я для печать использовал принтер TLP 2742PSE производства Zebra Technologies Corporation. Печать наклеек производилась с помощью программы LabelView XLT+ Как она выглядит, видно на скриншоте ниже.
На скриншоте конструктор наклейки. Когда шаблон наклейки будет готов, можно приступать к печати. Нажимаем кнопку «Печать» и появляется окно-форма в которую мы вводим данные нашей наклейки. Непосредственно окно печати выглядит так:
Что тут к чему я пояснять не буду. Во первых нам это не нужно, я же не ПО продаю, а во вторых и так всё понятно.
При создании шаблона мы указали два заполняемых пользователем поля: Action и Key. Первый нам нужен только для информации, что это за наклейка, тут можно вписать что угодно. Jump, Attack, LookUp. Второе поле это клавиша которая должна быть нажата для произведения действия. Когда Вы будете готовы к печати наклеек, по моим примерным подсчётам, Вам придётся напечатать их четырнадцать штук. И реализовывать они будут вот такие функции:
attack | a | ![]() |
jump | j | |
forward | f | |
back | b | |
strafe left | l | |
strafe right | r | |
roll left | o | |
roll right | p | |
roll up | u | |
roll down | d | |
stopall | s | |
weapnext | n | |
stop | z | |
stroll | x |
Тут нужно обратить внимание на то, что баркод одной буквы (как у нас) состоит всего из одной буквы, а это всего 15 полосок на наклейке (для буквы А например) А это не смотрится, вопрос эстетики :) Поэтому для того чтобы баркод был широким и красивым, справа от буквы мы впишем несколько пробелов. На самом деле в поле Key мы вводим что-то вроде «А »
Нашей компанией, Штрих Центр, представлены практически все известные бренд оборудования штрихкодирования, если вас интересует товар которого вы не нашли на сайте, можете обратиться к нашим менеджерам по телефону, и они помогут подобрать вам аналогичный товар, или порекомендовать партнера где его можно приобрести
Настройка Quake
Игры от ID Software всегда были выполнены качественно, и вносили в жанр 3D стрелялок какие-то новые фишки, которые потом подхватывали другие производители, собственно жанр обязан им своим существованием. Одна из фишек использование alias'ов, макрокоманд Quake. Конечно, не они первые придумали макрокоманды, но в стрелялках, если я не ошибаюсь, они встречаются впервые. Что это такое я рассказывать не буду, Вы это и так должны знать. Я просто покажу Вам как это можно применить в нашем случае. Клавиши которые мы закатали на наклейки будут управляющими в Quake, на них нужно просто «забиндить» нужные нам функции. И если на некоторые из них можно забиндить стандартные функции Quake например:
bind j +jumpТо на другие нам придётся биндить собственные алиасы, и я приведу Вам пример конфигурационного файла с готовыми алиасами.
exec default.cfg
unbindall
gamma .7
clear
echo «BAR-Code config»
bind ` toggleconsole
bind ins «exec dcp.cfg»
// Простые бинды
bind a +attack
bind j +jump
bind n «impulse 10» // WeapNext
// Алиас остановки
alias stop_all «-forward;-back;-right;-left;-moveleft;-moveright;-lookup;-lookdown»
bind s stop_all
alias stop_move «-forward;-back;-moveleft;-moveright»
bind z stop_move
alias stop_look «-right;-left;-lookup;-lookdown»
bind x stop_all
// Вперёд назад
alias ff «stop_all; +forward»
bind f ff
alias bb «stop_all; +back»
bind b bb
// Крутимся лево право
alias ll «stop_all; +left»
bind o ll
alias rr «stop_all; +right»
bind p rr
// Стрейф лево право
alias ml «stop_all; +moveleft»
bind l ml
alias mr «stop_all; +moveright»
bind r mr
// Смотрим вверх вниз
alias lup «stop_all; +lookup»
bind u lup
alias ldown «stop_all; +lookdown»
bind d ldown