Язык скриптов

Теперь пришло время вводить те таинственные сценарии (скрипты), которые управляют поведением объектов. C-Script - язык программирования, в котором вы указываете, как ваша игра должна вести себя. Но не бойтесь о необходимости изучать новый язык. Мы не собираемся программировать целую игру сегодня. Пока мы позволим 3D GameStudio програмировать игру автоматически.

Откройте уровень. Затем выберите File / Map Properties / NewScript. Теперь в окне сценария, появится имя файла сценария. Этот файл только что был создан в вашей рабочей директории и имеет такое же имя как и ваш уровень. Этот файл содержит полную структуру фашей игры: концепция уровней, управляющее меню игры, и поведение объектов.

C-Script может разделять игру на небольшие части. Такая небольшая часть является поведением определенной сущности. Каждое названное действие состоит из списка инструкций, которые выполняются в определённой последовательности. Давайте рассмотрим данные действия: Установите на ваш уровень ту сущность, которому вы хотите задать определённые действия. Для примера, в этот раз, мы выберем кабину элеватора - Object / Add Map Entity / lift1.wmb. Откройте окно свойст сущности (Properties/Behaviout), и щелкните на символ папки, что бы открыть панель действий.

В списке доступных действий, два раза щёлкните на ent_rotate, и нажмите OK. В область Entrot_Pan введите величину 3.

Save, и Build. Теперь выберите File / Run Level. В отличии от Walkthrough, скрипт стартует вместе с уровнем. Обязательно сделайте полноэкранный режим просмотра, иначе вы не увидите сообщения об ошибках и отсутствующих файлах, в течении игры.

Первое, что вы вероятно заметите, - то, что вы не можете двигаться. На вашем уровне всё же не хватает игрока (вы можете добавить, например, guard.mdl, и назначить ему дествие player_walk). Но можете просто нажать [0] , и камера перейдёт на ручное управление. Cмотрите на кобину! Теперь кое-что перемещается на нашем уровене! Как это может быть достигнуто?

Каждое действие доступное в списке содержится в нашем вновь созданном сценарии, или в одном из заготовленных сценариев в шаблонах subfolder. Вы можете увидеть код действия ent_rotate - Resources / Resources / Actions в окне проекта, сделав двоёной щелчок на ent_rotate:


Если Вы не знакомы с синтаксисом C или javascript, то команды этого действия могут вас шокировать!

"//" - обозначается комментарий. Комманды заканчиваются ";" и группируются вместе "{ }". Сначала установлены некоторые свойства сущности (MY - сама сущность, точка указывает, то что следующие указанные действия принадлежат этой сущности). WHILE запускает действие {... }, и устанавливает его в цикл. В этом цикле, величина _ENTROT_ совмещается с командами PAN, TILT, или ROLL. И сущность вращается. Посмотрите коментарии, что бы хоть немного понять где какие действия происходят.

Теперь давайте немного отредактируем наш файл со скриптом. Зайдите в вашу рабочую папку, по умолчанию WORK, найдите файл с именем нашего уровня, но с расширением wdl, откройте его с помощью любого текстового редактора или специальной программы SED, и добавте в самый конец скрипта этот код:

action ent_roll
{
  while(1)
  {
    if(key_r == on) { my.roll += 5*time; }
    wait(1);
  }
}

Сохраните файл сценария. Выберите нашу кабану, откройте панель свойства, и теперь вы найдете ваше самописьменное действие ent_roll в списке действий! Выберите его. Сохраните, "постройте уровень", и запускайте. Смотрите, теперь действие выполняется, когда вы нажимаете клавишу [R]!

Не волнуйтесь, если вы не понемаете этот код, скоро научитесь всему, и будете отлично владеть написанием скриптов, изуча руководство "Програмирование игр за 6 дней " (будет опубликованно позже).

Используются технологии uCoz