三、对象的属性与方法.doc

上传人:M****1 文档编号:551641861 上传时间:2023-03-15 格式:DOC 页数:45 大小:8.17MB
返回 下载 相关 举报
三、对象的属性与方法.doc_第1页
第1页 / 共45页
三、对象的属性与方法.doc_第2页
第2页 / 共45页
三、对象的属性与方法.doc_第3页
第3页 / 共45页
三、对象的属性与方法.doc_第4页
第4页 / 共45页
三、对象的属性与方法.doc_第5页
第5页 / 共45页
点击查看更多>>
资源描述

《三、对象的属性与方法.doc》由会员分享,可在线阅读,更多相关《三、对象的属性与方法.doc(45页珍藏版)》请在金锄头文库上搜索。

1、三、对象的属性与方法在Alice中每一对象都有它的properties、methods、functions,前面的一些实例已经涉及到一个对象的方法与属性,这里再通过实例来进一步说明对象属性、方法的含义及使用方法,而函数的功能及使用方法后面另作介绍。1.对象的属性(properties)对象的属性会在对象details板中的properties列表中列出,多数对象具有下述属性:Color:对象的基本颜色。Opacity:对象的可见度,0%表示完全透明,对象不可见,100%表示不透明,对象可见。Vehicle:它使一个对象跟随另一对象一起运动。Skin texture:贴在对象上的图像。filli

2、ngStyle:对象是以实体模型或是线框模型表示。pointOfView:指出对象的位置和方位。isShowing:决定对象在场景中是出现或是消失。Sound:对象能产生的声音。当拖某个属性至编辑区时,利用出现的菜单设定相应的属性值,或者直接点击该属性,在出现的菜单上设定其属性值,在前面的二个实例中,巳使用过对象的属性,如仙女和航天员的属性vehicle的应用。下面再用一个实例来说明对象属性的使用。实例8:Texture map(纹理面图)如何用在一个形体上复盖一张纹理面图,从而形成Alice中一个新的对象,如建造一个地球对象,国旗对象以及建筑物对象等。(1) 选择沙地为背景,在本地库的Sha

3、pes文件夹中选择sphereHighPoly加入到场景中,再利用对象操作按钮将它移至屏幕中央。Texture实际上就是一张图,Alice接受大多数的图像格式,如Jpegs,png和Bitmap。利用绘图软件将一张地球表面的图进行处理,使它无任何边框,以Alice接受的图像格式存于文件系统中,以便在Alice需要import时能找到它。点击File并选择import,在对话框中打入刚存入图形的文件名Earth.jpeg,点击import,尽管在主窗口上没有出现地球表面的图像,但它会在world属性列表的skin texture中出现。 右击对象树上的sphereHighPoly,选择renam

4、e,重新命名为PlanetEarth。再点击属性列表中的skin texture属性,选择world.Earth。此时在主窗口中看到了地球。为了加入新的对象,将地球向后移开,再次从Shapes文件夹中选择Box对象,并将它加入到场景中,利用对象操作按钮将它放大成如下图形同样利用绘图软件剪切出一张建筑表面图,并以building cover文件名存入。类似地点击File并选择import,在对话框中打入刚存入图形的文件名building cover.jpeg,点击import。 点击File并选择import,在对话框中打入刚存入图形的文件名building cover.jpeg,点击impor

5、t,它同样会在world属性列表的skin texture中出现。 右击对象树上的Box,选择rename,重新命名为SkyScraper。再点击属性列表中的skin texture属性,选择world.building cover。对出现在主窗口的建筑物利用相机控制按钮调整它象一座空中摩天楼(sky scraper)。实例9:溜冰女孩的场景设置(1) 点击File及New world,出现welcome to Alice!窗口,从中选择snow作为背景,现在要改变天空的色颜,让它稍为暗一点,在world的属性列表中找到atmosphereColor(天空的色颜),点击其后面的彩色盒并选择ot

6、her,在彩色盘上将游标指向一暗兰色的方格,该方格位于从底部算起的第三行从左边算起的第七列的位置,此时屏幕上会显示该位置为”0,0,153”,然后点击ok,这样天空颜色改变为暗兰色。(2)现在要加入有小木屋和树的冰湖及溜冰的小女孩,点击Add object,在出现的本地库的右上角点击search Gallery,打入lake再点击search,在出现的对象中点击class lake,主窗口就会出现有小木屋和树的冰湖的场景,同样再点击search Gallery,打入ice skater后再点击search,从所列出的对象中选择Class iceSkater加入到场景中。同时利用对象定位按钮将她

7、定位面向相机。按Done转到编程界面,点击File将此初始场景以lake skater文件名存入,以便以后编程时调出。(3) 点击对象树中的iceSkater,再点击Details板上的属性列表,其中有pose、pose2、pose3及pose4四个属性,分别将它们拖入world my first method的编辑区,按Play后看lake skater摆的什么姿势,以便在编程中调用它。2.对象的方法什么是对象的方法,方法是用来定义对象的行为,它是由一系列命令所组成,指示对象去完成指定的动作。在Alice中每一个对象都有一组内建的方法,或叫原始的方法,如move 、turn、roll、say

8、等20种方法。1. move(direction,amount)2. turn(direction,amount)3. roll(direction,amount)4. resize(amount)5. think(what)6. playSound(sound)7. moveTo(asSeenBy)8. moveToward(target,amount)9. moveAwayFrom(target,amount)10. orientTo(asSeenBy)11. turnToFace(target)12. pointAt(target)13. setPointOfView(asSeenBy)

9、14. setPose(pose)15. standUp()16. moveAtSpeed(direction,speed)17. turnAtSpeed(direction,speed)18. rollAtSpeed(direction,speed)19. constrainToPointAt(target)这些方法是每个对象经常要使用的方法,它们会在该对象details板上的methods列表中列出,如前例中航天员的右臂部分内建方法如下:如列表中rightArm是对象名,move是方法名,该方法是要对象在虚拟场景中移动,当把move拖入方法编辑区时,将会出现移动方向上、下、左、右、前、后六

10、个方向的菜单,以确定朝什么方向移动,在选好方向后会出现移动距离的菜单,如1/2米、1米、2米、5米、10米及other,选other后需从键盘输入其它数字,此时按Play就会使场景中对象按指定的方向和距离移动,可以对几个经常使用的方法用上述步骤来了解该方法对应的动作,注意turn与roll的区别,一些运动命令(如move、turn、roll)常以“more.”结束,如果再点击“more.”时会弹出一个菜单,在菜单中会出现与该动作命令相关的三个参数(arguments):duration、style和asSeenBy,以供编程时选择。其中参数duration告诉Alice一个动作在运行时持续的时

11、长(以秒计算,Alice中默认每个动作指令持续的时长是一秒钟)。duration 等于0表示动作会立即完成,duration不能为负值。在上面kangaroo的例子中,我们用duration参数来表示说话的持续时间。参数style用来指定一个动作完成时如何过渡到下一个动作。可选的方式有:gently(逐渐开始并逐渐结束)、abruptly(突然开始和突然结束)、begin gently(逐渐开始突然结束)以及end gently(突然开始逐渐结束)。为了达到最理想的过渡效果,编程时往往会尝试使用不同的过渡方式,这个参数的具体应用将会在以后的实例中看到。参数asSeenBy是动画编程中常用的一个

12、参数,因为Alice中的每个对象都有自己的方位,它的运动是以自身的方位开始而运动的,但有时会要求用另一个对象作为对象运动时的方位参考,而不是按本身的方位来运动,在上面的仙女与金鱼实例中,仙女的绕金鱼一圈的运动是以金鱼作为运动时的方位参考而转一圈。而航天员走向(move to)悍马车是以悍马车作为运动时的方位参考而移动。而参数asSeenBy正是用来表述一个对象用另一个对象作为运动时的方位参考。这里再用一个例子来说明asSeenBy的应用。假设我们在飞行培训中需要一架直升飞机(VehiclesHelicopter)。下面两命令行是想让直升飞机向左翻转一点后再向上升的代码。 运行这个程序,会发现结

13、果和原来想的不一样。当直升飞机向上升时,它是以自身的向上的方向为参考的, 要想实现的其实是飞机相对于地面的向上飞行。要修改这个错误,单击“more.”并选择asSeenBy groud。修改的结果如下所示,这样就得到想要的效果了。 尽管Alice为毎个对象提供了这些原始方法,但毕竟数量有限,因此Alice还为用户提供建立新方法的手段,例如前面实例中要求航天员挥手,就是由用户建立的新方法wave,它实际上就是由5条原始方法(turn backward、roll left、roll right、roll left及turn forward)所组成,此时所新建的方法wave也会出现在航天员detai

14、ls的方法列表中,以便在编程中能调用它。对象的方法又分为场级(world) 方法和类级(class)方法,场级方法是涉及二个以上的方法,而类级方法只涉及一个对象,下面通过具体实例来说明这两种方法。实例10: 袋鼠与乌龟赛跑(1).手动设置虚拟场景:选择草地grass为背景,分别将kangaroo、turtle及road三个对象加入到场景中,并调整它们的位置如下图所示。点击more controll,点击drop a dummy at the camera,并命名为originalPosition,最后按Done(2)建立乌龟行走的新方法:这个新方法是针对对象乌龟所建立的方法,因此属于类级方法。

15、点击对象树上的turtle,再点击create new method,并命名为walk,拖do in order至walk方法编辑区,点击对象树上的turtle左边+号,可看到身体不同部分,拖frontLeftLeg至编辑区,并选择turn、backward、other且打入.1点击在turn命令行最后面的more,选择duration=.25。现在乌龟左腿向后凖备行走,然后乌龟向前移动.3米,同时也要求后右腿turn forward 向前.1,为此先将do together拖入编辑区,在其下拖入乌龟的move forward及其右腿的turn forward,在乌龟向前走后还要顺序执行前左腿turn forward和后右腿 turn backward为了验证turtle行走的正确性,先点击方法编辑区中的world.myfirst method,将turtle方法列表中的walk拖入到编辑区,按Play看turtle的行走。(3)建立Kangaroo的新方法:因为它是针对Kangaroo建立的方法,也就属于类级方法。在对象树上点击kangaroo,再点击create new method并命名hop,先将do together拖至编辑区,再按下图拖入相应的命令行同样为了验证所编程序的正确性,先点击方法编辑区中的world.

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号