Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Каскадирование префиксов

Можно указывать для одного выражения несколько контекстов, располагая их друг за другом через запятую, каскадом. Например скрипт

animate on, at time 100, undo off, coordsys local

(rotate $box* 15 x_axis)

повернет все объекты с именами, начинающимися на box, относительно их осей x на 15 градусов и создаст соответствующие ключи анимации в сотом кадре. Причем эти действия нельзя будет отменить с помощью команды undo.

 

Вложенные контексты

Контексты могут быть вложены друг в друга. Например

animate on

(at time 10

(in coordsys local move $box01 [10,0,0]

in coordsys local move $sphere01 [10,0,0]

)

at time 20

(in coordsys local move $box01 [20,0,0]

in coordsys local move $sphere01 [20,0,0]

)

)

При этом все функции, как стандартные, так и составленные Вами, вызываемые в текущем контексте, выполняются в этом контексте. Иными словами, если внутри выполняемой функции совершаются какие-нибудь действия с объектами, то они выполняются в том контексте, который на момент обращения к функции, установила вызывающая программа. Впрочем, этого может не происходить, если функция устанавливает свой контекст, отменяющий текущий.

 

Установка постоянных контекстов

Контекст можно установить не только для следующего за префиксом выражения, но и для любого участка скрипта. В таком случае к префиксу добавляется ключевое слово set. При этом главное – не забыть вернуть контекст в исходное положение, иначе он будет действовать постоянно. Например

set animate on

set time 30

move $box01 [10,0,0]

$box02.bend.angle = 15

set time off

set animate off

Первые две строки включают анимацию и устанавливают позицию ползунка в тридцатый кадр. Третья и четвертая строки перемещают объект box01 на 10 единиц и изгибают box02 на 15 градусов. Последние две строки возвращают контекст в исходное положение. Для того чтобы запомнить текущий контекст можно использовать следующий способ. При установке нового контекста, старый может быть занесен в переменную. Делается это, например, так

OldContext = set coordsys parent

После этого все действия, совершенные с объектами, будут выполняться в системе координат родительских объектов. Когда надо будет вернуться к старой системе координат, надо будет написать

set coordsys OldContext

 

Комментарии

Обилие комментариев – один из признаков высокого класса программиста. В MAXScript комментарии записываются с помощью двух знаков минус “--“. Все, что находится после двух стоящих подряд минусов и до конца строки, считается комментарием.

-- Это комментарий

Начиная с четвертой версии, в 3ds max можно применять комментарии, аналогичные C++. То есть комментариями считается все, что стоит между сочетанием символов “/*” и “*/”.

/* это тоже комментарий, но расположенный

на нескольких строках

*/

 

Запись выражения на нескольких строках

Чаще всего в MAXScript каждое простое выражение записывается на отдельной строке, но иногда, для улучшения читаемости программы желательно записать длинное выражение на нескольких строках. Для этого применяется знак обратного слеша в конце строки. Например

Rotation_X = \ -- Поворот относительно оси X

Rotation_Y = \ -- Поворот относительно оси Y

Rotation_Z = \ -- Поворот относительно оси Z

Данный скрипт присвоит всем трем переменным одно и то же значение, причем можно прокомментировать назначение каждой переменной. Чаще всего, однако, подобная форма применяется при обращении к функциям, требующим большое число именованных параметров. Кроме того, допускается разрыв выражения на знаке, например такое выражение

x = a + b – c * d / k + 7.145 – e

можно записать так

x = a + b – c * d / k +

7.145 – e

но нельзя так

x = a + b – c * d / k

+ 7.145 – e

 


Дата добавления: 2015-10-31; просмотров: 127 | Нарушение авторских прав


Читайте в этой же книге: С чего начать | Области видимости | Выделение памяти и уборка мусора | Литералы имен объектов | Литералы массивов | Выражения сравнения | Блоковые выражения | Создание функций, локальных внутри структуры | Символьные строки | Логические (Булевы) значения |
<== предыдущая страница | следующая страница ==>
Контекстные выражения| Операторы цикла do и while

mybiblioteka.su - 2015-2024 год. (0.007 сек.)