--Lego кирпичной стены
сдвига = верно
для г в 0 до 9 сделать
(
сдвига = не смещаться; - почему двоеточие?
для x = от 0 до 9 do (копировать $ Lego) .pos = if shift then [40 * x, 0,20 * z] else [20+ 40 * x, 0,20 * z]
)MAXScript, может ли один объяснить этот сценарий мне (очень ясно)
0
A
ответ
0
Строка за строкой, сначала вы устанавливаете переменную, которая контролирует, перемещаете ли вы строку или нет. Затем для индекса строки z от нуля до десяти вы переключаете сдвиг с истины на false и наоборот. Точка с запятой является необязательной и не нужна. Это внешний цикл. Во внутреннем цикле for для каждого индекса столбца x от нуля до девяти вы создаете копию узла сцены с именем Lego - это возвращает сам объект, поэтому вы можете прямо установить его положение, заданное с помощью множества индексов, и добавить сдвиг по оси х, если номер строки четный.
Вы также можете использовать по модулю проверить, если строка индекса даже и вместо того, чтобы создать копию объекта и установка его позиции после этого сделать это в конструкторе:
for z in 0 to 9 do
(
local shift = if mod z 2 == 0 then 20 else 0
for x = 0 to 9 do copy $Lego pos:[shift + 40 * x, 0, 20 * z]
)