Хонич А.
Как самому создать трехмерную игру стр. 71 Глава 6 Контроль со стороны играющего Этот раздел, как мы видели выше, состоит из трех функций: 1 Control - обработка клавиатуры и других устройств ввода (мышь, джойстик) и заполнение специальных структур управления. 2. ProcessingControl - обработка структур управления, т.е. выполнение соответствующих действий в зависимости от внешних воздействий и в зависимости от текущих режимов работы программы. 3. GameControl - эта функция принимает активное участие в самом процессе игры и отвечает за перемещение игрока в трехмерном пространстве и другие его действия, которые приводят в трепет его врагов. Прежде чем присту пить к описанию работы вышеперечисленных функций, необходимо пояснить, что такое структуры управления, и почему мы говорим о них во множественном числе. Поясню сначала второй пункт на примере обработки клавиатуры. Допу стим, что в тот момент, когда вы усердно нажимаете на клавиши, надеясь уничтожить очередного обнаглевшего монстра, программа занята не менее важными делами, например, формированием изображения лабиринта на экране (точнее, в невидимой его части). За то время, пока она формирует изображение, теоретически возникает несколько прерываний- от клавиатуры, и их количество напрямую связано с быстродействием вашего компьютера и, конечно же, с параметрами настройки клавиатуры. Казалось бы, волноваться не о чем. У любой клавиатуры есть очередь размером в 15 знаков. Однако есть два “но”. Во-первых, нельзя иметь доступ к любому символу в стандартной очереди команд клавиатуры: они считываются последовательно. А во-вторых, в некоторых случаях имеется вероятность переполнения внутреннего буфера клавиатуры. В связи с этим в функции обработки прерываний от клавиатуры мы заполняем свой буфер клавиату ры (своя очередь) размером в 32 знака: Исходный текст обработчика клавиатуры newkeyb: Но это еще не все Известно, что в АТ клавиатуре нередко одно нажатие (или отжат ие) клавиши сопровождается серией кодов. Например, при нажатии |
||||
|