Сущности — динамические объекты

Сущности — динамические объекты, актеры, монстры, транспортные средства и прочее — все что может двигаться в нашем игровом мире. Дополнительно к параметрам, задаваемым в панели свойств сущности в WED, есть гораздо большее количество свойств, которые могут быть установлены или изменены Действием(action). Эти свойства влияют на вид сущностей, их реакцию на некоторые события, и их перемещение или поведение при столкновении.

Сущности могут быть созданы тремя способами:
— Помещая их на уровне в WED,
— Создавая их на уровне в run-time инструкцией ent_create,
— Определяя их через определение сущности в скрипте (только модели и спрайты).

Сущности, помещенные или созданные на уровне, названы сущностями уровня (level entities); сущности, определенные в скрипте являются видимыми или перед экраном (сущности вида-view entities) или на заднем плане уровня (сущности неба-sky entities). Особый, очень недолгий тип сущностей уровня — частицы(particles), созданные инструкцией effect. Частицы имеют только ограниченный набор параметров сущности. Параметры Сущности могут быть изменены любой функцией; они должны быть заданы определенным в скрипте именем сущности или указателем подобно my или you.

Поскольку уровень выполняет на сервере, сущности уровня существуют только на сервере и на клиенте, который их создал (если есть). При покидании уровня все сущности уровня удаляются автоматически, и их действия(action) прерываются. Сущности вида или неба однако существуют на всех клиентах. Сущности вида видимы, даже если вообще нет никакого загруженного уровня. Они могут использоваться, чтобы показать 3D элементы пользовательского интерфейса, подобно вращающемуся компасу, рулю или оружию, которое несет игрок. Сущности вида определены следующим образом:
entity name { … }
В пределах определения, любому параметру сущности можно давать начальное значение. Также может быть определен список флагов, установливаемых в начале игры. Пример:
entity shotgun_onscreen
{
type = ;
layer = 2; // показать Выше сущности вида со значением layer 1
flags = visible;// видим на экране при старте уровня
view = camera; // same camera parameters as the default view
albedo = 50; // плавное затенение от солнца
x = 100; // расположиь на 100 quants впереди вида
y = -50; // 50 квантов справа
z = 0; // и по цетру — вертикально
}
Сущности неба определяются аналогично:

sky name { … }
Определяет текстуру неба, спрайт неба, или сферу неба или куб с данным именем. Неюо рисуется на фоне уровня и автоматически центрируется вокруг камеры. Неограниченное число сущностей неба может быть объединено в D3D режиме. В 8-битовом режиме однако можно показать только два купола неба и одна карта сцены. Как с сущностями вида, порядок построения определен параметром layer. На небо не воздействует свет уровня и туман. Пример:
sky mountain {
type = ; // the image for a backdrop scene
layer = 3; // display above sky entities with lower layers
scale_x = 0.25; // gives a field of 90 degrees (360 * 0.25 = 90)
tilt = -10; // moves it by 10 degrees down
flags = scene,overlay,visible; // backdrop scene, black is transparent, visible
}

Добавить комментарий