Предыдущая версия справа и слева
Предыдущая версия
Следующая версия
|
Предыдущая версия
Следующая версия
Следующая версия справа и слева
|
q3:работа_с_entities [27.08.2009 13:24] Nt-kop4ik |
q3:работа_с_entities [29.08.2009 14:05] Nt-kop4ik +свойства объектов |
Собственно говоря //entity// или //модель// в map-файле представляет собой список параметров, среди которых: | Собственно говоря //entity// или //модель// в map-файле представляет собой список параметров, среди которых: |
| |
* Главные (свойственны всем //entity//) | * Главный (свойственен всем //entity//) |
* //classname// - определяет, чем собственно выделенная //entity// является; | * //classname// - определяет, чем собственно выделенная //entity// является; |
| |
* Второстепенные (могут быть определены для всех //entity//) | * Второстепенные (могут быть определены для всех //entity//) |
* //origin// - местоположение //entity// в формате "X Y Z" | * //origin// - местоположение //entity// в формате "X Y Z"; |
* //target// - метка, указывающая //entity//, следующую после данной в связи (connection); | * //target// - метка, указывающая //entity//, следующую после данной в связи (connection); |
* //targetname// - метка данной //entity// для ссылания на нее другой; | * //targetname// - метка данной //entity// для ссылания на нее другой; |
| |
Так что //target// и //targetname// вам в руки, и вперед ;-) | Так что //target// и //targetname// вам в руки, и вперед ;-) |
| |
| === Свойства объектов === |
| |
| * При обычном копировании или импортировании объектов из других //map//-файлов параметры //target// и //targetname// снабжаются индексами. К примеру, при копировании объекта (//trigger//'а, к примеру) с параметром //target// равным //give_rocket//, создастся такой же объект с параметром //target// равным //give_rocket1//, а если значение равно //give_rocket1//, то получим значение //give_rocket2// и т.д. |
| |
| * Важная особенность: при копировании объекта выделение __**не переходит**__ на новый объект. |
| |
| * Не имеет значение, каково значение параметра //origin// у //entity//, за исключением: |
| * //entity// пересекается с твердым брашем ; |
| * //entity// находится в "открытом пространстве"; |
| * В обоих случаях уровень при компиляции (//BSP -meta//) выдаст "утечку" (//leak//). |
| |
=== Некоторые "фишки" в работе с entity inspector === | === Некоторые "фишки" в работе с entity inspector === |
* При выделении некоторой строчки **Key:Value** в соответствующих полях появятся соответствующие значения; при этом если выделить другой //объект// и зайти в //**entity inspector**//, то поля будут содержать те же значения, которые там были во время закрытия. Таким образом можно удобно и быстро копировать строчки с параметрами из одного места в другое (к примеру, //_remap// от модели к модели). | * При выделении некоторой строчки **Key:Value** в соответствующих полях появятся соответствующие значения; при этом если выделить другой //объект// и зайти в //**entity inspector**//, то поля будут содержать те же значения, которые там были во время закрытия. Таким образом можно удобно и быстро копировать строчки с параметрами из одного места в другое (к примеру, //_remap// от //модели// к //модели//). |
| |
* Если нужно для тестирования уровня передвинуть на некоторое время //info_player_start// (или аналог), но двигать обратно его потом будет лень, а наличие двух таких //entity// мешает стабильно спауниться, то можно установить в первом //info_player_start// параметр //classname// равным, к примеру, //info_player_start2//. Тогда он не будет никак отображаться на уровне и даст спокойно спауниться другому //info_player_start//'у. | * Если нужно для тестирования уровня передвинуть на некоторое время //info_player_start// (или аналог), но двигать обратно его потом будет лень, а наличие двух таких //entity// мешает стабильно спауниться, то можно установить в первом //info_player_start// параметр //classname// равным, к примеру, //info_player_start2//. Тогда он не будет никак отображаться на уровне и даст спокойно спауниться другому //info_player_start//'у. |