Основы трехмерной графики в среде Blitz3D


Управление камерой с клавиатуры (25 мин)


Следующее условие ИСТИННО в том случае, если в данный момент нажата определенная клавиша и ЛОЖНО, если она не нажата.

IF KEYGET (scancode) THEN

Каждая клавиша на клавиатуре имеет скан-код (scancode). В таблице по адресу Help \ Command Reference \ Scancodes приведены скан-коды для каждой клавиши. Скан-коды часто используемых клавиш приведены в памятке.

Теперь сделаем управление камерой с клавиатуры для программы "fir" - для этого мы должны создать бесконечный цикл (чтобы компьютер вновь и вновь опрашивал клавиатуру) и поместить внутри него команды поворота камеры. При этом мы должны периодически осуществлять визуализацию. Также, добавим условие для выхода из программы при нажатии клавиши ESC. Итак, заменим строки:

RENDERWORLD

FLIP

WAITKEY

на следующие:

Задаем начальные значения углов:

xa = 0

ya = 0

REPEAT

Меняем угол поворота вокруг оси OX:



 IF KEYDOWN(200) THEN xa = xa + 1; вверх

 IF KEYDOWN(208) THEN xa = xa - 1; вниз

Меняем угол поворота вокруг оси OY:

 IF KEYDOWN(203) THEN ya = ya + 1; влево

 IF KEYDOWN(205) THEN ya = ya - 1; вправо

Устанавливаем углы поворота камеры:

 ROTATEENTITY cam, xa, ya, 0

Выход по нажатию клавиши ESC:

 IF KEYDOWN(1) THEN EXIT; ESC - выход

Визуализируем трехмерный мир:

 RENDERWORLD

 FLIP

FOREVER

Запишем эту программу под именем “fir2”.



Содержание раздела