×

常见的MAXScript的数组、循环语句关键词

发布时间:2019-12-10 09:34:56

1.Array数组

数组(array) ,是一系列有序数据的集合。

语法:# ( <value>, <value>,... )

#():空数组

例如,把a + b、18和80 as float这几个数据放在一起,就可以用数组存放。

#(a+b,18,80 as float )

把变量放到数组中,如下图所示。

常见的MAXScript的数组、循环语句关键词

数组元素个数和调用每一一个变量, 如下图所示。

常见的MAXScript的数组、循环语句关键词

a.count,返回3说明数组中有3个元素; a[1], 返回10说明调用了数组中第一个元素。数组调用的序号:是用中括号([])括起来的。

修改数组中某元素的值,如下图所示。

常见的MAXScript的数组、循环语句关键词

删除数组中的某个元素,如下图所示。

常见的MAXScript的数组、循环语句关键词

2.for循环

语法: for<var_ name> ( in|= ) <sequence> ( do | collect ) <expr>

<var_ name>是循环中的每一个单独的变量,<sequence> 是循环的源数值,<expr> 是表达式,1号左右表示可选项。

例1:

01 键入以下代码:

foriin I to 5 do sphere pos:[0,0,i*40]

02执行代码,如下图所示。

常见的MAXScript的数组、循环语句关键词

例2:

01 键入以下代码:

for i in selection do i.name +=“box"

02执行代码,如下图所示。

常见的MAXScript的数组、循环语句关键词

foriinselectiondoi.name+="box"//表示将所有选择物体的名字后面加一个"box"。

3.while...do循环

例:

01 键入以下代码:

i=1//给变量赋值

whilei>= 1 do print (i-=2) //如若i>= 1,那么就请打印出i _= 2的值。

02 执行代码,如下图所示。

常见的MAXScript的数组、循环语句关键词

4.if条件选择句

语法:

if <expr> then <expr> [else <expr>]或者if <expr> do <expr>

<expr>是表达式,if后 面的<expr>必须返回布尔常量true或者false。then,else ,do后面的<expr>可以是任何其他的maxscript表达式,中括号表示可选择。

例1:

01 键入以下代码:

i=2

j=4

ifi<j then printi<j

02执行代码,如下图所示。

常见的MAXScript的数组、循环语句关键词

i<j即2<4,返回true。

若打印写成i>j,就返回false,如下图所示。

常见的MAXScript的数组、循环语句关键词

例2:

01 键入以下代码:

=2

j=4.

if i> j then printi>jelsei<j

02 执行代码,如下图所示。

常见的MAXScript的数组、循环语句关键词

不执行then后面的语句,但是程序自动找到了后面的else,而执行else后面的语句。

ifi>jithen printi>jelsei<j的意思是,如果i>j, 那么执行print "i大于j”,否则执行print "小于j”,这样就可以通过判断- -个语句的true或者false来执行相关操作了。

例3:

01 键入以下代码:

i=2

j=4

ifi<jdo printi<j

02 执行代码,如下图所示。

常见的MAXScript的数组、循环语句关键词

把then换成了do,效果是-样的,那么then和do有什 么不同的特点呢?

i..then后面接表达式后还可以接else执行其他语句,而do后面只能接一个表达式。

例4: maxscript函数

函数在中学的数学中就学习过,例如:一次函数、二次函数等。函数是程序中极其重要的一部分,像C++、C#、JAVA等。通过前面的讲解相信读者对MAXScript已经有了基本的了解,其实在前面我们已经接触过了函数,如move、 scale、 rotate、 copy 等。本章只做大概的了解就可以了,想更多了解关于MAXScript的内容,大家可以通过帮助文档MAXScripreference进行学习。

函数function简写为fn。

例如: 

fn p = print localcolor

function p = print localcolor

例5:

01 键入以下代码:

fin p = print localcolor

02 执行代码,如下图所示。

常见的MAXScript的数组、循环语句关键词

返回p( ) ,函数就定义成功了。调用的时候只需要执行- -下p( ),就会运行此函数“=”号后面的内容。

fnp=printlocalcolor函数的意思是输出当前颜色。

例6:

01 键入以下代码:

fn radcolor col =

(

if color col == color then

for i in meditmaterials where color i == standardmaterial do i.diffuse = col

02 执行代码,如下图所示。

常见的MAXScript的数组、循环语句关键词

执行代码后返回radColor( ),说明函数定义成功。radColor是 函数名称,col是 函数名称后添加的参数,是一个函数变量。Col是颜色参数,也可以直接输入颜色名称,如radColor blue或radcolor col: ( color 3464 123 )。

返回列表>