Во времена, когда игровые восьмибитки были популярными, существовал такой аксессуар, как световой пистолет. Идея простая - включаешь игру-стрелялку, вместо контроллера подключаешь такое устройство и играешь как будто в тире. Одной из самых известных игр была, конечно же, Duck Hunt, где всегда хотелось застрелить собаку, которая тебя унижала при промахе, но не получалось этого сделать.
Ещё в те времена у меня уже включалось инженерное мышление и я начал пытаться проанализировать принцип работы этого устройства. Было совсем не ясно, как на обычном экране без сенсора и прочих элементов воздействия удавалось считать воздействие пистолета. Складывалось впечатление, что это обманка. Но тогда почему иногда удавалось попасть в утку, летящую по экрану?
Я заклеил отверстие в пистолете изолентой и попадания вообще перестали происходить. Значит, штука всё-таки живая и рабочая.
Было решено расковырять пистолет и посмотреть что там внутри. Кстати, это одна из первых штук, которые я разобрал сам. Конструкция этого устройств оказалась очень простой. Она включала некоторый светодиод или лампочку (так я тогда подумал), управляющую схему, которая даже меньше, чем в любом джойстике и одну несчастную кнопку, выполненную в виде курка. Собственно, вопросов появилось больше, чем ответов. На тот момент я решил, что лампочка светит в экран при нажатии кнопки, а потом фиксируется отражённый луч.
Вот только как понять, что луч отразился от нужной точки? Возможно, по цвету объекта! Утка - она коричневая или черно-белая в моем случае, но с нужной градацией серого. На тот момент я не мог догадаться, что восьмибитка такую схему не потянет :)...Ну и завернул я этот пистолет и валялся он без дела.
Кстати, есть многочисленные ремейки. Вот тут, например, собаку можно застрелить.
Но оказалось, что всё гораздо проще!
Лампочка в пистолете - это вовсе не лампочка, а фотодатчик, который фиксирует появление белого или черного квадрата в момент нажатия кнопки-курка. Вот оказывается для чего были эти неясные квадратики на экране, которые иногда можно было заметить на старых телеках. Это не глюк.
Кстати, тут важно отметить, что в некоторых играх их можно было даже и не увидеть, потому что глаз не успевал фиксировать их появление. Зато сенсор пистолета вполне себе успевал.
В итоге схема работы светового пистолета становится ещё более простой. Вернемся к нашим баранам уткам.
Утка летит по экрану и в момент нажатия на кнопочку-курок, экран окрашивается на сотые доли секунды в черный цвет, а утка выделяется квадратиком. Фотодатчик в пистолете смотрит, наведен ли он в этот момент на квадратик или нет. Это вполне себе простая задачка.
Программный механизм проверяет условие "Если датчик видит белый квадрат, то ты попал". Всё. Вот настолько просто работает эта штука :)
Их курьезов хотелось бы отметить один интересный момент. Попробуйте-ка игрануть на обычном современном ЖК-телеке в такую игрушку. Не попадёте в утку ни разу. А всё потому, что для ЖК свойственно такое понятие, как скорость реакции. Жидкий кристалл формирует изображение позже, чем это фиксирует световой пистолет. Команда считать уже отправлена, а квадратик ещё физически не отрисован. Система даёт ответ - мимо! Соответственно, экраны с хорошим временем отклика может быть и осилят такие игры, а вот стандартные недорогие телеки из гипермаркетов не смогут. Вот уж не думал, что скажу когда-нибудь, что мой черно-белый телевизор Горизонт с деревянным корпусом лучше справится с этой задачей. И выходит...Что современные телевизоры не тянут Денди :)!
Пожалуйста, подпишитесь и обязательно возвращайтесь за новым контентом на проект! Возврат подписчика сейчас очень важен для существования канала! Виноват ДЗЕН...
Присоединяйся к моей телеге и читайте лучшее на бусти проекта!
Статьи по теме на канале:
Ещё кое-что полезное:
- Путеводитель по научно-популярным каналам ДЗЕНа: смотрите здесь