ACS
Материал из DoomDev
(Различия между версиями)
Текущая версия (20:33, 27 марта 2008) (просмотреть исходный код) |
|||
- | + | ACS (Action Code Script) - скриптовый язык, который был создан для [[Hexen]] и значительно расширен [[ZDoom]]. | |
- | |||
- | |||
- | |||
- | + | == Введение == | |
+ | ACS позволяет авторам уровней создавать скрипты для игровых событий и, таким образом, создавать интерактивные среды даже старом движке [[Doom]]. Используя очень простые команды, автор может изменять структуру карты, например, поднимать или опускать полы по отдельности или одновременно, в одном или в разных направлениях, на разную высоту. Можно даже перемещать отдельные стены ([[полиобъекты]]). Можно изменять и текстуры на полах и стенах. Монстров (и любые другие предметы) могут быть создать, удалить, возможно изменять множество свойств, давать им цели... ACS дает множество возможностей, особенно если автор скрипта обладает талантом, терпением и воображением. | ||
- | + | Более строго говоря скрипт - что-то, что пишется в некотором текстовом редакторе и что содержит отдельные скрипты (подпроцедуры), команды, определения переменных и так далее. Как иногда говорят, ACS - миниатюрный язык программирования, похожий на С/С++ (и даже позволяет добавлять комментарии, как в примере ниже). Элементы самого верхнего уровня - скрипты. Обычно скрипт начинается с чего-то такого: | |
- | + | ||
- | + | ||
- | + | // это комментарий | |
+ | int ДоступнаВсемСкриптам = 101; | ||
+ | int МожноСоздаватьМассивы[3] = {3,6,9}; | ||
+ | |||
+ | SCRIPT 1 OPEN { | ||
+ | int ПеременнаяСкрипта = 0; | ||
+ | while(ДоступнаВсемСкриптам == 101){ | ||
+ | ПеременнаяСкрипта++; | ||
+ | delay(1); | ||
+ | } | ||
+ | } | ||
- | + | Обратите внимание, что зацикленные скрипт без задержки будет автоматически завершен ZDoom, так как он не позволит выполниться больше ничему на карте. В этом случае вы увидите такое сообщение: | |
+ | Runaway script 1 terminated | ||
- | + | Запись переменных схожа с записью во множестве языков программирования. Если переменная должна быть доступна всем скриптам, она должна быть определена снаружи скриптов. В ZDoom доступны и массивы, то есть переменные, которые могут хранить несколько значений, а доступ к отдельному значению производится по индексу (МожноСоздаватьМассивы[2] = 9). | |
+ | Скрипт записывается схоже с функциями в C, если не считать того, что не нужно ставить точки с запятой после }, как для других выражений. OPEN, использованный в данном примере, означает, что скрипт будет выполнен при старте уровня. | ||
- | В | + | В ACS так же поддерживаются условные выражения и, соответственно, циклы создаются из условных выражений. Поддерживается большинство (если не все) условных выражений и циклов C/C++. |
+ | Перед использованием в карте ACS должен быть скомпилирован. Для этого используется [[ACC]]. | ||
- | + | ==Подразделы== | |
+ | * [[База готовых скриптов]] | ||
+ | * [[Спецификаторы]] | ||
+ | * [[Встроенные функции]] | ||
+ | * [[ACS для новичков]] | ||
+ | * [[Конфигурация ACS для Doom Builder]] | ||
+ | * [[Библиотеки]] | ||
+ | * [[Другие полезные константы]] | ||
+ | * [[Другие полезные функции]] | ||
+ | * [[Учебник по скриптам Ричарда Кларка]] | ||
+ | * [[Типы скриптов]] (OPEN, ENTER и другие) | ||
+ | * [[Определения|Некоторые простые определения]] | ||
+ | * [[Области видимости|Области видимости переменных]] | ||
+ | ==Основы ACS== | ||
+ | ===Основы=== | ||
+ | * [[Структура скрипта]] | ||
+ | * [[Типы данных|Переменные и типы]] | ||
+ | * [[Области видимости]] | ||
+ | * [[Константы]] | ||
+ | * [[Операторы]] | ||
- | + | ===Контролирующие структуры=== | |
+ | * [[Контролирующие структуры]] | ||
+ | * [[Типы скриптов|Скрипты]] | ||
+ | * [[Функции]] | ||
+ | ===Работа с ACS=== | ||
+ | * [[Спецификаторы]] | ||
+ | * [[Встроенные функции]] | ||
+ | * [[Библиотеки]] | ||
- | + | ===Ресурсы=== | |
+ | * [[Определения|Некоторые простые определения]] | ||
+ | * [[Учебник по скриптам Ричарда Кларка]] | ||
+ | * [[База готовых скриптов]] | ||
+ | * [[Конфигурация ACS для Doom Builder]] | ||
- | + | {{zdoomwikibased}} | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + |