|
楼主 |
发表于 2003-1-26 22:12:00
|
显示全部楼层
MAXSCRIPT初级教程(二)
通过前面的例子,我们已经大致了解了MAXScript的一些简单功能,这回我们继续添加内容,制作更加复杂的外挂程序。
下面的步骤将生成一个简单的物体建立面版,就像MAX程序的“CRERTE MIODE”一样,不但可以通过点击按钮生成物体,还可以设置其他如:长、宽、高、半径等参数。在开始之前我们不妨考虑一下到底是制作一个什么功能的外挂,可以至少有三个功能,分别是制作一个立方体、球体和一个圆柱体,并且要可以设置他们的各种参数。那么现在先打开“Open Script”并输入下面的语句。我们将建立一个新的max外挂程序。
Utility uti "Create"
(
)
我们先将首尾的代表开始和结束的扩号写好,是为了养成一个比较好的书写习惯,以防止在运算时丢掉其中一些运算符号。确认无误后我们就可以开始加入内容了。前面我们已经自己制作一个生成立方体的按钮,这回我们还用同样的方法制作三个按钮,现在我们在扩号中加入下面语句:
button btn_box "Box"
button btn_sphere "Sphere"
button btn_cyl "Cylinder"
Ctrl+E运行程序。现在得到了含有三个按钮的插件。我们继续添加内容,并在刚才的第一行后面输入控制立方体宽度的控制器:
spinner sp_wid "width:" range:[0,100,10]
继续输入,生成控制立方体高度的控制器:
spinner sp_heibox "height:" range:[0,100,10] 继续输入,生成控制立方体长度的控制器:
spinner sp_len "length:" range:[0,100,10]
运行程序。发现在第一个按钮“BOX”下面出现了三个分别控制宽度、高度、长度的微调控制器,并且里面默认的数值均为10。
现在还要为第二个按钮“Sphere”加入两个控制半径和片断数的微调控制器,并且设置半径的默认值为10,片断数的默认值为16。在第二个按钮下面加入下面的语句生成控制球体半径的控制器:
spinner sp_radsph "Radius:" range:[0,100,10]
继续输入,生成控制球体片断数的控制器:
spinner sp_seg "Segments:" range:[0,100,16]
到目前为止已经为两个按钮加入了参数的控制器,先不忙着运算程序,先检查一下是否有遗漏或输入错误的字符和标点。并且和下面的源代码比对一下:
Utility uti "Create"(
button btn_box "Box"
spinner sp_wid "width:" range:[0,100,10]
spinner sp_heibox "height:" range:[0,100,10]
spinner sp_len "length:" range:[0,100,10]
button btn_sphere "Sphere"
spinner sp_radsph "Radius:" range:[0,100,10]
spinner sp_seg "Segments:" range:[0,100,16]
)
检查后如果没有错误继续为第三个按钮添加参数控制器。在后面输入一下字符: 生成控制圆柱体半径的控制器:
spinner sp_radcyl "Radius:" range:[0,100,10]
生成控制圆柱体高度的控制器:
spinner sp_heicyl "Height:" range:[0,500,50]
生成控制圆柱体边数的控制器:
spinner sp_sid "Sides:" range:[0,100,10]
到目前为止,这个插件的界面就已完成了,但是看上去还有点乱的感觉,我们可以继续在添加一些辅助性的内容,让界面看上去更整齐美观一些。下面的源代码可以把这个插件分成几部分,使他们各自独立成组。这里我们使用“组”这个功能。
将按钮“Box”和控制立方体的三个控制器加入到下面代码中的两个括号之间:
group"BOX"
(
)
将按钮“Sphere”和控制立方体的两个控制器加入到下面代码中的两个括号之间:
group"SPHERE"
(
)
将按钮“Cylinder”和控制立方体的两个控制器加入到下面代码中的两个括号之间:
group"CYLINDER"
(
) 到目前的全部界面部分的源代码已经写好,可以对照下面的语句检查一遍:Utility uti "Create"
(
group"BOX"
(
button btn_box "Box"
spinner sp_wid "width:" range:[0,100,10]
spinner sp_heibox "height:" range:[0,100,10]
spinner sp_len "length:" range:[0,100,10]
)
group"SPHERE"
(
button btn_sphere "Sphere"
spinner sp_radsph "Radius:" range:[0,100,10]
spinner sp_seg "Segments:" range:[0,100,16]
)
group"CYLINDER"
(
button btn_cyl "Cylinder"
spinner sp_radcyl "Radius:" range:[0,100,10]
spinner sp_heicyl "Height:" range:[0,500,50]
spinner sp_sid "Sides:" range:[0,100,10]
)
)
现在可以再次运行这个外挂,运行结果如图。
[upload=jpg]http://www.vrdesigner.com/teaching/pic/script02.jpg[/img]
会发现整个界面的感觉已经非常整齐规矩,很有“感觉”了。在制作完界面以后,我们会继续深入研究maxscript,并把这个外挂程序做完。MAXSCRIPT初级教程(二)
[此贴子已经被作者于2003-1-26 22:12:57编辑过]
|
|