用户名 密    码

MayaMel基础教程(七)

来源:pcdog.com 作者:XiaoYu 发布时间:2010-08-17 10:44:41 网友评论 0

  MayaMel基础教程
  定义数据本章描述MEL的数据类型它们之间的转换:1、变量;2、常数;3、数据类型转换;4、限制。
  1、变量
  所有变量名以$开始。变量名不包括空格和特殊字符。你可以使用下划线和数字作为变量名但开头不能是数字。
  识别大小写,如$temp不同于$Temp。
  例:
  int$radical7Mark;//有效
  intHEYchief;//ERROR:开头缺"$"
  int$nine;//ERROR:开头不是"$"
  int$_VAL_ID___AIT_;//有效
  int$howdyYa`ll;//ERROR:含有无效字符
  int$1Bill;//ERROR:开头不能是数字
  有以下五种变量类型:
  类型意义例子int整数(...-2,-1,0,1,2...)10,-5,和0
  float小数392.6,7.0,and-2.667
  string一个或更多的字符"What'sup,chief?"
  vector三个浮点数<<3,?7.7,?9.1>>
  matrix浮点数阵列<<1.1,2,3;6.7,5,4.9>>
  以上类型除matrix外,都可以是一个阵列。如,一个三元素的整数阵列是一个跟一个的三个整数。
  声明和标注变量
  声明一个变量是说明变量的名字和类型;标注一个变量是给已生命的变量一个专有的值。下例是将声明和标注合为一步:
  int$temp=3;
  float$Temp=222.222;
  string$tEmp="Heyakid.";
  vector$teMp=<<1,2.7,3.2>>;
  matrix$temP[2][3]=<<4.5,1,0.2;-  13,9911,0.007>>;
  当生命矩阵变量时,必须包括二维阵列的尺寸。
  下例说明对整型、浮点、字符串和矢量阵列型变量阵列的声明和标注:int$TEmp[5]={100,1000,-70,2,9822};float$TeMp[4]={43.3,-10.7,0,82.5};string$TemP[3]={"Lord","Flies","coolbrownfox2."};<p>
vector$tEMp[2]={<<0,0,0>>,<<0.01,-2,16>>};
  如果一个变量被声明但未被标注,它的所有的值是0;字串变量则?quot;"。
  float$teMP;//赋值:0;
  string$TEMp[3];//赋值:{"","",""};
  vector$TEmP[2];//赋值:  {<<0,0,0>>,<<0,0,0>>};
  matrix$TeMP[3][2];//赋值:<<0,0;0,0;0,0>>;
  如果一个变量被声明或者被使用而没有定义它的类型,它被隐含声明为将要赋值给它的那种类型。
  $tEMP=0.0;//浮点数
  string$TEMP[];//零元素字符串阵列
  $trip="heyaBuddy";//字符串
  $rip={1,2,3,4};//四元素整型阵列
  $lip=<<1,2.1;3,4>>;//2X2矩阵
  $flixp=$TEMP;//零元素字符串阵列
  注意值0.0是一个浮点数,而一个0值是一个整型数。这决定了在隐含声明时是产生一个浮点数还是产生一个整型数。
  不建议使用隐含声明,因为它不象变量的隐含声明那样的清楚。
  保留字
  MEL的保留字可以是一个变量类型、控制逻辑或是表达一个值。以下是MEL的保留字:
  breakcasecontinuedefaultdoelse
  falsefloatforglobalifin
  intmatrixnooffonproc
  returnstringswitchtruevectorwhile
  yes
  数据类型关键字
  intfloatvectorstringmatrix
  布尔常数关键字
  yesnoonofftruefalse
  流动控制关键字    ifelseforwhiledoinbreakcontinuedefaultswitchcase
  其他关键字globalreturnsourcecatchaliasproc
  保留字也区分大小写。所以int是整型,Int不是。实际上alias、source、catch也是保留字,但它们起指令作用,因此没有被包括在上述表内。
  字符串
  字符串可用" "运算连接。
  string$what="Whale";
  string$title="Great" "White" $what;
  这将使title变量的内容为GreatWhiteWhale。
  矢量
  为寻址一个vector的各个成分,使用"."。
  vector$LOS=<<1,2,7>>;
  float$firstComponent=$LOS.x;//赋值为1
  float$secondComponent=$LOS.y;//赋值为2
  float$thirdComponent=$LOS.z;//赋值为7
  标注矢量的成分:
  vector$LOCK=<<7,-4,9>>;
  $LOCK=<<$LOCK.x,$LOCK.y,3>>;//Assigned<<7,-4,3>>
  但不能直接给一个成分标数字:
  $LOCK.z=3000;//错误
  但是通常当访问一个矢量成分时,你应该象下面例子那样围绕它使用括号:
  例子:
  print$LOCK.x;//错误
  print($LOCK.x);
  setAttrpersp.scaleX$LOS.x;//错误
  setAttrpersp.scaleX($LOS.x);    

关键词:MayaMel
搜索栏目