首页 三对象的属性与方法

三对象的属性与方法

举报
开通vip

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

三对象的属性与方法
三对象的属性与方法 三、对象的属性与方法 在Alice中每一对象都有它的properties、methods、functions,前面的一些实例已经涉及到一个对象的方法与属性,这里再通过实例来进一步说明对象属性、方法的含义及使用方法,而函数的功能及使用方法后面另作介绍。 1..对象的属性(properties) 对象的属性会在对象details板中的properties列 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 中列出,多数对象具有下述属性: Color:对象的基本颜色。 Opacity:对象的可见度,0%表示完全透明,对象不可见,100%表示不透明,对象可见。 Vehicle:它使一个对象跟随另一对象一起运动。 Skin texture:贴在对象上的图像。 fillingStyle:对象是以实体模型或是线框模型表示。 pointOfView:指出对象的位置和方位。 isShowing:决定对象在场景中是出现或是消失。 Sound:对象能产生的声音。 当拖某个属性至编辑区时,利用出现的菜单设定相应的属性值,或者直接点击该属性,在出现的菜单上设定其属性值,在前面的二个实例中,巳使用过对象的属性,如仙女和航天员的属性vehicle的应用。下面再用一个实例来说明对象属性的使用。 实例8:Texture map(纹理面图) 如何用在一个形体上复盖一张纹理面图,从而形成Alice中一个新的对象,如建造一个地球对象,国旗对象以及建筑物对象等。 (1) 选择沙地为背景,在本地库的Shapes文件夹中选择sphereHighPoly加入到场景中,再利用 对象操作按钮将它移至屏幕中央。 1 Texture实际上就是一张图,Alice接受大多数的图像格式,如Jpegs,png和Bitmap。利用绘图软件将一张地球表面的图进行处理,使它无任何边框,以Alice接受的图像格式存于文件系统中,以便在Alice需要import时能找到它。 点击File并选择import,在对话框中打入刚存入图形的文件名Earth.jpeg,点击import,尽管在主窗口上没有出现地球表面的图像,但它会在world属性列表的skin texture中出现。 2 右击对象树上的sphereHighPoly,选择rename,重新命名为PlanetEarth。再点击属性列表中的skin texture属性,选择world.Earth。 此时在主窗口中看到了地球。 3 为了加入新的对象,将地球向后移开,再次从Shapes文件夹中选择Box对象,并将它加入到场景中,利用对象操作按钮将它放大成如下图形 同样利用绘图软件剪切出一张建筑表面图,并以building cover文件名存入。 类似地点击File并选择import,在对话框中打入刚存入图形的文件名building cover.jpeg,点击import。 点击File并选择import,在对话框中打入刚存入图形的文件名building cover.jpeg,点击import,它同样会在world属性列表的skin texture中出现。 4 右击对象树上的Box,选择rename,重新命名为SkyScraper。再点击属性列表中的skin texture 属性,选择world.building cover。 5 对出现在主窗口的建筑物利用相机控制按钮调整它象一座空中摩天楼(sky scraper)。 实例9:溜冰女孩的场景设置 (1) 点击File及New world,出现welcome to Alice!窗口,从中选择snow作为背景,现在要改变天空的色颜,让它稍为暗一点,在world的属性列表中找到atmosphereColor(天空的色颜),点击其后面的彩色盒并选择other,在彩色盘上将游标指向一暗兰色的方格,该方格位于从底部算起的第三行从左边算起的第七列的位置,此时屏幕上会显示该位置为”0,0,153”,然后点击ok,这样天空颜色改变为暗兰色。 6 (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等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) 14. setPose(pose) 15. standUp() 16. moveAtSpeed(direction,speed) 17. turnAtSpeed(direction,speed) 18. rollAtSpeed(direction,speed) 19. constrainToPointAt(target) 这些方法是每个对象经常要使用的方法,它们会在该对象details板上的methods列表中列出,如前例中航天员的右臂部分内建方法如下: 8 如列表中rightArm是对象名,move是方法名,该方法是要对象在虚拟场景中移动,当把move拖入方法编辑区时,将会出现移动方向上、下、左、右、前、后六个方向的菜单,以确定朝什么方向移动,在选好方向后会出现移动距离的菜单,如1/2米、1米、2米、5米、10米及other,选other后需从键盘输入其它数字,此时按Play就会使场景中对象按指定的方向和距离移动,可以对几个经常使用的方法用上述步骤来了解该方法对应的动作,注意turn与roll的区别, 一些运动命令(如move、turn、roll)常以“more...”结束,如果再点击“more...”时会弹出一个菜单,在菜单中会出现与该动作命令相关的三个参数(arguments):duration、style和asSeenBy,以供编程时选择。其中参数duration告诉Alice一个动作在运行时持续的时长(以秒计算,Alice中默认每个动作指令持续的时长是一秒钟)。duration 等于0表示动作会立即完成,duration不能为负值。在上面kangaroo的例子中,我们用duration参数来表示说话的持续时间。 参数style用来指定一个动作完成时如何过渡到下一个动作。可选的方式有:gently(逐渐开始并逐渐结束)、abruptly(突然开始和突然结束)、begin gently(逐渐开始突然结束)以及end gently(突然开始逐渐结束)。为了达到最理想的过渡效果,编程时往往会尝试使用不同的过渡方式,这个参数的具体应用将会在以后的实例中看到。参数asSeenBy是动画编程中常用的一个参数,因为Alice中的每个对象都有自己的方位,它的运动是以自身的 一个对象作为对象运动时的方位参考,而不是按本身方位开始而运动的,但有时会要求用另 的方位来运动,在上面的仙女与金鱼实例中,仙女的绕金鱼一圈的运动是以金鱼作为运动时的方位参考而转一圈。 9 。 而航天员走向(move to)悍马车是以悍马车作为运动时的方位参考而移动 而参数asSeenBy正是用来表述一个对象用另一个对象作为运动时的方位参考。 这里再用一个例子来说明asSeenBy的应用。假设我们在飞行 培训 焊锡培训资料ppt免费下载焊接培训教程 ppt 下载特设培训下载班长管理培训下载培训时间表下载 中需要一架直升飞机(Vehicles\Helicopter)。 下面两命令行是想让直升飞机向左翻转一点后再向上升的代码。 运行这个程序,会发现结果和原来想的不一样。当直升飞机向上升时,它是以自身的向上的方向为参考的, 10 要想实现的其实是飞机相对于地面的向上飞行。要修改这个错误,单击“more...”并选择asSeenBy ? groud。 修改的结果如下所示,这样就得到想要的效果了。 尽管Alice为毎个对象提供了这些原始方法,但毕竟数量有限,因此Alice还为用户提供建立新方法的手段,例如前面实例中要求航天员挥手,就是由用户建立的新方法wave,它实际上就是由5条原始方法(turn backward、roll left、roll right、roll left及turn forward)所组成,此时所新建的方法wave也会出现在航天员details的方法列表中,以便在编程中能调用它。 对象的方法又分为场级(world) 方法和类级(class)方法,场级方法是涉及二个以上的方法, 11 而类级方法只涉及一个对象,下面通过具体实例来说明这两种方法。 实例10: 袋鼠与乌龟赛跑 (1).手动设置虚拟场景:选择草地grass为背景,分别将kangaroo、turtle及road三个对象加入到场景中,并调整它们的位置如下图所示。点击more controll,点击drop a dummy at the camera,并命名为originalPosition,最后按Done (2)建立乌龟行走的新方法:这个新方法是针对对象乌龟所建立的方法,因此属于类级方法。点击对象树上的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,在乌龟向前走后还要顺序执行前左腿 12 turn forward和后右腿 turn backward 为了验证turtle行走的正确性,先点击方法编辑区中的world.myfirst method,将turtle方法列表中的walk拖入到编辑区,按Play看turtle的行走。 (3)建立Kangaroo的新方法:因为它是针对Kangaroo建立的方法,也就属于类级方法。在对象树上点击kangaroo,再点击create new method并命名hop,先将do together拖至编辑区,再按下图拖入相应的命令行 同样为了验证所编程序的正确性,先点击方法编辑区中的world.myfirst method,将kangaroo方法列表中的hop拖入到编辑区,按Play看kangaroo的跳跃动作。 (4)建立kangarooo与turtle比赛的新方法:前靣建立的新方法是限于一个指定的对象,这里所建立的新方法是针对虚拟场景的,它涉及到场景的多个对象,因此这种方法属于场级方法。点击对象树中的world,再点击create new method并命名为race。在编辑新方法时,首先安排turtle与kangaroo相互对话,先拖入do in order,再分别拖入turtle与kangaroo 各自两条命令行 13 为了turtle与kangaroo同时移动,要先拖入do together,点击对象树上的turtle,在它的方法列表上将walk拖入到race的编辑区 类似地点击kangaroo,将方法hop拖入至编辑区,并放在walk命令行之后。 为了验证编程的正确性,先点击方法编辑区中的world.myfirst method,删去编辑区内的所有命令行,点击world并拖 race进myFirstMethod编辑,按Play看Kangaroo和turtle是否跳或走一步,为了柤互比赛,需要重覄调用world.race中的walk和hop,为此要使用循环loop控制。 (5)循环控制loop:拖loop到do together之上,并选择循环次数例如选4次 14 再把do together(连同walk及hop一起)放在loop命令下方 再按Play,kangaroo将赢得比赛。将此编程存一个名为turtle.a2w文件,以便以后调用。 实例11:溜冰表演 在实例9中巳设置好溜冰场景,只需从File中打开lake skater就可以了,下面主要是为溜冰表演编辑一些类级(class)方法。除了巳有的四个姿势外,还要将溜冰动作分解成一些基本动作,并为实现这些基本动作去编程一些方法,将这些方法不同的组合就能进行溜冰表演。 (1)首先是滑行(skate)动作,它依次由左腿滑行和右腿滑行动作组成,因此要先编左腿滑行和 点击对象树中iceSkater,在方法列表中点击右腿滑行两个方法,再由它们组成skate方法。 create new method,命名新方法为slideLeftt,此时在方法编辑区上方会出现iceSkater.slideLeft,它表明此方法是类级方法。它要求抬起右腿滑左腿,持续时间1.5秒,因此编程结果如下 将事件区的when the world starts do后靣改为world.slidLeft,按Play看她是否抬右腿又收回。类似地可以编写右腿滑行的方法slideRight,其结果和上述编程几乎一样,只是把其中right换成left。 15 再编辑skate方法,当她向前移动2米的同时,先左腿后右腿滑行,其结果如下 改事件区中when the world starts do后靣为world.skate,按play看滑行效果。 (2)旋转(spin)动作:因为旋转动作只需调用turn方法,向左旋转给定的圈数,但它有旋转前动作和旋转结束动作,为此要先编写相应的二个方法,prepareToSpin、finishSpin,然后由它们组成spin方法。准备旋转prepareToSpin方法要求抬起左腿举起双手,其编程结果为 对于旋转结朿finishSpin要求双手放下且左腿也放下,其编程结果为 16 这样spin方法的编程就比较简单,为了便于修改旋转次数,为spin引入了一个新参数,点击create new parameter,命名为howmanySpins,它是一个数字型参数,在编辑区iceskater.spin旁边出现,当拖入trun时选left后,将它拖入到left后面的数字以代替它。其编程结果是 改事件区中when the world starts do后靣为world.spin,此时会要求选择旋转次数,例如选择2,则有howManySpins=2,按play可看旋转效果。 (3) 跳(jump):要求向上跳时全身转三圈后落下,其编程结果为 17 (4)滑园(circle):要求沿园周前进滑行(使用asSeenBy)和后退滑行,其编程结果为 (5))根据表演要求,将上述一些方法组合在my first method中,例如: 按Play就可以看溜冰表演。 3(具有参数的方法 实例12: 袋鼠拜访它的朋友们。这里所说的拜访是指袋鼠到它朋友面前说一句问候的话,然后离开而跳到下一个朋友靣前。 (1)选择沙滩作背景,从本地对象库中分别拖入kangaroo、cow、bunny、horse、ladybug、turtle,调整它们的位置如下 18 (2)点击kangaroo,为它建立一个新方法并命名为visit,实现拜访每一个朋友。先假定拜访cow,要求用编程实现kangaroo与cow面对面,且kangaroo移到cow面前 为了考察向前移一米是否到了cow的面前,需将事件编辑区中when the world starts do后面的内容改为kangaroo. visit,然后按Play,为了保证kangaroo能仃在cow前2米处,需要调用kangaroo的函数功能,点击kangaroo,再点击functions并从列表中将kangaroo distance to拖入到 1 meter上方 原来的move forward命令行改1 meter为kangaroo distance to,因此有 19 按play,kangaroo巳走向cow,剧本要求kangaroo停在cow前面2米远,因此点击最后一个more前的三角形, 依序选择math、minus、2, 其结果是kangaroo停在cow中心点前面2米远。 (3). kangaroo向cow问候,并跳过cow以便拜访其它朋友,因此kangaroo要向上跳1米,再向前跳2米加上cow’s depth,再跳2米,即距离为4+cow’s depth而cow’s depth可从cow的function中获得。改when the world starts do后靣为kangarooVisit,按Play检验程序正确性。 20 (4).上述所编辑的方法是kangaroo拜访cow的编程,为了实现kangaroo拜访其它朋友而又不必为拜访每一个朋友去重覄编程,这里需要引入参数的概念。也就是用参数去代替朋友,这样只须为拜访这个参数编程,当kangaroo拜访某一位朋友时,只须将此参数改名为该朋友名。为此点击create new parameter,在出现的对话框中打入新参数名friendToVisit,并选择Type中的object后点击OK 此时新参数friendToVisit出现在方法Kangaroo.visit旁边,现在可以将它拖入到方法中去替代4处出现的cow,这样可得到一个含参数的方法,即Kangaroo拜访某一参数朋友,若将参数设定为cow,就是前面编程的结果,拜访不同的朋友都是用同一个方法,只不过需将参数设定为要访问的朋友。 (5)将”when the first world starts”改回为myFirstMethod,在Kangaroo’s details中点击methods,将带参数的方法Kangaroo.visit拖至myFirstMethod方法编辑区内,同时将参数分别设为bunny、cow、horse、turtle、ladybug 21 (6)为了使Kangaroo对不同朋友用不同的问候语,还需引入另一个新参数,首先要回到Kangaroo.visit方法编辑区,再点击create new parameters,在对话框中打入新参数名greeting,选择Type为other,打入string,最后点击OK 此时Kangaroo.visit方法后面跟有二个参数 将第二个参数greeting拖至Kangaroo say后面,以代替How are you doing? 再回到myFirstMethod方法编辑区,将对每一位朋友的greeting设为不同的问候语 (7)由于拜访的朋友高度不一样,而Kangaroo只能跳1米高,如果朋友高度是小于1米就跳过 22 去,如果是大于或等于1米,就改为绕朋友一圈。回到Kangaroo.visit方法编辑区,将If/Else拖至Kangaroo move up 命令行前,点击world,在其function列表中将a 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 结果。 (5)编写绕cone转一圈的新方法SkateCircle。点击对象树world,点击create new method,命名它为SkateCircle。为skateboard编写下述命令行 为了使skateboard绕cone转,对最后一行命令点击more,选择asSeenBy,cone,同时设duration为4 seconds 42 将新编写的skateCircle拖入到world.my first method编辑区的最后一行 (6)编写skateGuy庆贺的新方法skateGuy.celebrate。点击对象树上skateGuy,点击方法列表中create new method,命名它为celebrate,先拖Do togather至编辑区,再拖skateGuy至其下面,选择 say,other,打入Wow,Awesome! 拖loop至Do togather下面并选择 2 times,再拖Do in order ,再编写skateGuy的两条命令 43 再拖另一个Do in order ,再编写skateGuy有关右手臂的四条命令 至此该新方法编写完成。点击world.myfirstMethod,将skaterGuy.celebrate拖入到world.skateCircle 的上面。按Play可演示结果。 44
本文档为【三对象的属性与方法】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_614050
暂无简介~
格式:doc
大小:1MB
软件:Word
页数:60
分类:
上传时间:2017-11-11
浏览量:15