Реклама:

Теперь нужно как-то заставить все созданные объекты работать вместе. Возьмемся за написание самого скрипта.

Скриптовый язык в "Doom" основан на языке программирования С, поэтому людям, знакомым с ним, разобраться в написании скриптов не составит труда. Для тех же, кто не знаком с основами программирования, приведем основные понятия "думовско-го" скриптинга. В общем виде скрипт выглядит так.

Void имя_скрипта{) {

[команды скрипта] [вызов других скритпов]

}

Используются, в основном, команды двух видов: действия над объектами и действия над игроком. Команды действия над объектом имеют такой вид.

$имя_оОъекта.команда(параметры команды);

Например, поворот объекта на 90 градусов по оси Z осуществляется так:

$HMH_oCbeKTa.rotateOnce(0 0 90);

Именем объекта в данном случае является значение ключа Name в свойствах этого объекта. При любом движении используются заранее заданные для данного объекта параметры скорости, ускорения и времени, за которое объект проделывает это движение. Действие над объектом может использовать в качестве параметров не только числовые значения, но и другие объекты. Скажем, команда $имя_объекта. startSpline ($имя_кривой) ; заставляет объект пролететь вдоль указанного сплайна от начала и до конца.

Команды действия над игроком имеют такой вид.

sys.команда([необязательный параметр]);

Примеры таких действий вы можете видеть в написанном чуть ниже скрипте.

Если вы хотите в процессе выполнения одного скрипта вызвать дополнительный, то просто напишите имя вызываемого скрипта.

имя_скрипта{);

Для объектов, которые мы создали на нашей карте чуть ранее, текст скрипта будет иметь следующий вид.

void start_camera_spline() {

$move.time(10); //Сколько секунд займет пролет камеры //вдоль маршрута.

$move.accelTime(1); //Время на разгон камеры.

$move.decelTime(1); //Время на торможение камеры.

$move.startSpline($marshrut); //Запускает объект

//func_mover под именем move //вдоль кривой marshrut.

}

void camera_script() {

sys.setCamera($camera); //Переключает на обзор

//с камеры camera. start_camera_spline(); //Запускает вышенаписанный скрипт, sys.wait(10): //Пауза до окончания выполнения запущенного //скрипта.

sys.firstPerson(); //Переключает на вид от первого лица. }

Запишите этот текст в текстовый файл с расширением *. script. При этом имя файла должно быть таким же, как и имя вашего уровня. Поместите файл в той же папке, где находится уровень. Чтобы данный скрипт запускался в игре, создайте на карте объект trigger_ once (для однократного выполнения скрипта) или trigger_ multiple (для многократного) и задайте для него ключ call со значением camera_script. Скрипт будет выполнен, когда игрок войдет в область, занятую объектом trigger_once.

Приведенный пример отражает лишь малую часть возможностей и команд скриптового языка в "Doom 3". Но на полное его описание потребовался бы не один десяток страниц. Однако этого примера достаточно, чтобы понять принципы написания "думских" скриптов. А все команды, используемые в скриптах, вы можете найти в файле base\script \doom_events. script. Команды снабжены пояснениями, поэтому разобраться с ними не составит большого труда.


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