Реклама:

If (элемент in имя_набора) then (элемент в наборе}

Элементы, соответствующие кнопкам джойстика, называются

jbButtonl, jbButton2, jbButton3 и т.д. И наконец, вот так вы сможете определить, нажата ли та или иная кнопка:

if (jbButtonl in Joystick.JoyButtons) then (нажата первая кнопка}

Код для переназначения клавиш

Ниже приведен код для переназначения клавиш.

function IsItKeyDown(sKey:string):boolean; begin

if KeyNameToVirtualKeyCode(sKey)o-l then begin

if IsKeyDown(KeyNameToVirtualKeyCode(sKey)) then result:=true

else result:=false;

exit;

end else

begin

result:=false;

if (jbButtonl in forml.joystick.JoyButtons) and

(sKey='jbButtonl') then result:=true;

if (jbButton2 in forml.joystick.JoyButtons) and

(sKey=*jbButton2') then result:=true;

if (jbButton3 in forml.joystick.JoyButtons) and

(sKey=*jbButton3') then result:=true;

if (jbButton4 in forml.joystick.JoyButtons) and

(sKey=1jbButton41) then result:=true;

end;

end;

Везде, где нужно проверить, нажата ли определенная клавиша, пользуйтесь таким вызовом:

If IsItKeyDown (c_forward) then {нажата клавиша вперед)

В c_f orward перед началом работы игры должно храниться название назначенной для действия "Вперед" клавиши. Аналогично поступайте со всеми остальными действиями, которые подлежат переназначению.

Коды клавиш

Клавиша

Код

Клавиша

Код

<Т>

VK_UP

<Enter>

VK_RETURN

<1>

VK_DOWN

<Esc>

VK_ESCAPE

<-»

VK_RIGHT

<Alt>

VK_MENU

<«->

VK_LEFT

<Ctrl>

VK_CONTROL

<Пробел>

VK_SPACE

<Shift>

VK_SHIFT

От общего к частному

Что общего у шлема боевого летчика и компьютерной игры? У обоих есть HUD! Это словосочетание расшифровывается как Head Up Display и на русский язык однозначно не переводится. На шлемах боевых летчиков многих современных самолетов есть прозрачные дисплеи, на которых показываются параметры вооружения, целеуказатель и многие другие данные, необходимые в воздушном бою. С легкой руки разработчиков авиасимуляторов этот термин стал относиться не только к спецдисплею, но и к экранному интерфейсу вообще. Теперь под страшным словом HUD скрывается все, что находится на экране во время игры, но непосредственно не относится к игровому миру: очки, жизни, фраги, пиктограммки оружия, радар, списки юнитов и зданий для постройки и многое другое. Как правило, HUD двухмерный, т.е. рисуется спрайтами поверх всей остальной сцены. По-настоящему трехмерные игровые интерфейсы встречаются крайне редко. Мы поговорим о создании классических двухмерных HUD.

Для создания HUD в GLScene есть два класса— TGLHUD-Sprite и TGLHUDText для спрайтов и текста соответственно. Эти объекты обладают рядом особенностей. Во-первых, они существуют только в двухмерном пространстве, а их координата Z определяет только порядок отрисовки, т.е. какие объекты будут поверх в случае пересечения. Во-вторых, положение HUD-объектов на экране не зависит от того, куда направлена камера, — их координаты абсолютны. Точка с координатой (0,0) находится в верхнем левом углу экрана, ось X идет вправо, а ось Y — вниз. В-третьих, у них особые отношения к свойствам прозрачности.


⇐ Предыдущая страница| |Следующая страница ⇒