用Alice学编程第5节.ppt

上传人:xin****828 文档编号:6308173 上传时间:2020-02-22 格式:PPT 页数:27 大小:863.81KB
返回 下载 相关 举报
用Alice学编程第5节.ppt_第1页
第1页 / 共27页
用Alice学编程第5节.ppt_第2页
第2页 / 共27页
用Alice学编程第5节.ppt_第3页
第3页 / 共27页
点击查看更多>>
资源描述
第5讲 类 对象 方法和参数 1 class object methodandparameter 面向对象的程序设计 Object orientedprogramming 中用类 对象和方法来组织程序 这种组织方法的好处 把一个大的程序分成若干个小的模块用和现实生活中一样的概念来设计程序容易发现程序运行错误 5 1类和对象 classANDobject 类 Class 是一个描述一类有共性的物体的概念 如汽车 桌子等 在Alice中 每一类用一个3D模型表示 对象 Object 符合一个类中所描述的共性的实际的物体称为这个类的一个实例 instance 如汽车的共性有 都有一个方向盘 四个轮子 有颜色 排气量等特点 但这仅仅是概念的描述 实际生产出来的汽车就是这个类的一个实例 我们把它叫做一个汽车对象 在Alice中 用第一个字母大写的单词表示类名 如Frog Airport 而用全部小写的单词表示对象名 如frog frog1 frog2 frog3 Alice举例 5 2场景级的方法 World levelmethods 我们所熟悉的方法如move turntoface say都是属于某个对象的 这种方法我们称之为类级的方法 class levelmethods 而我们的程序都存在于World myfirstmethod中 我们称这个方法为场景级的方法 FirstEncounter without methods a2w World myfirstmethod太长带来的问题 随着程序功能越来越多 代码也越来越长 如果我们把这些代码全部放到World myfirstmethod中 则不仅不容易阅读 而且不容易发现错误 解决方法 将myfirstmethod中的代码按照功能组织成几个相对独立的代码块 并分别给这些代码块起个名字 如 Doinordersurprise spiderRobotandalienOnWheelssurpriseeachotherinvestigate spiderRobotgetsacloserlookatalienOnWheelsreact alienOnWheelshidesandspiderRobotsendsmessage 逐步细化 StepwiseRefinement 在原来冗长的代码中分别找出相应的代码放到surprise investigate 和react中 如 surpriseDoinorderalienOnWheelsmovesupalienOnWheelssays whoareyou spiderRobot sheadturnsaround 在Alice中创建一个新的场景级方法 首先选中World节点选中World节点的method点击 createnewmethod 举例 FirstEncounter a2w该例子中说明的概念 surprise是一个world levelmethod 因为它定义在World节点中 而且其中包含对多个对象的操作 spiderRobot alienOnWheels surprise方法只有被调用 called invoked 才能有效果 Myfirstmethod方法是被谁调用的 自己定义方法的好处 节省时间 写程序时我们可以反复调用这个方法 而不需要重新写一遍 缩短代码长度 原来的代码中的若干行代码可以用这一行调用方法的代码代替 写程序时在一个更高的层次上考虑 thinkatahigherlevel 如只要考虑surprise而不用考虑这么多 alienmovesup aliensays whoareyou robot sheadturnsaround thinkatahigherlevel 实际上是一种封装 即用一个方法封装了具体的实现细节 自己改造Snowpeople例子 Snowpeople have not defined methods a2w 5 3方法的参数 Parameter 举例 创作一个动画让甲壳虫乐队的每个成员按顺序分别演出一个独奏曲 故事板 DotogetherDoinordergeorgeBeetlemoveupgeorgeBeetlemovedownplaysound DotogetherDoinorderringoBeetlemoveupringoBeetlemovedownplaysound DotogetherDoinorderpaulBeetlemoveuppaulBeetlemovedownplaysound DotogetherDoinorderlennonBeetlemoveuplennonBeetlemovedownplaysound 举例 该例子中说明的概念要想播放一段声音 首先要将声音文件导入Alice 该例子仅仅实现了georgeBeetle演奏的动画完成其它三个成员的动画是否需要同样制作三个方法 BeetleBand v1 5 a2w 一个更简洁的方法 观察BeetleBand v1 5 a2w 四个成员演奏的动画极其类似 只有演奏者和播放的音乐不同 其它动作类型和顺序都一样 是否可以仅告诉Alice演奏者的名字和对应的音乐 它就可以自动按照这种动画步骤来做呢 也就是说 总结这4个类似的方法的共性 并将它们归一化为一个方法 参数 Parameter 在我们熟悉的方法中 我们已经使用了方法的参数 如Move的方向 距离 持续时间等等 这些参数给你更多的控制 同样一个方法 由于参数的值不同 效果不一样 一个方法可以有好几个参数 每个参数都必须是某种数据类型 如 一个方法在被调用时它的参数 Parameter 必须被具体的值所代替 如上面的distance duration分别被0 5meters 0 5seconds代替 一个方法可被多次调用 而每次调用时传进去的值都可能不一样 参数的种类 Alice中提供了几种类型的参数 定义带有参数的方法 soloParameters bandMember musicDotogetherDoinorderbandMembermoveupbandMembermovedownplaymusic 定义一个演奏的方法 solo 同时定义该方法的两个参数bandMember music分别是Object类型和Sound类型 Demo BeetleBand v2该例子中说明的概念定义参数的方法 名字和类型参数相当于占位符 placeholder 即在调用这个方法时 这里位置是需要指定具体值的 增加一个数值类型的参数 增加一个数值类型的参数来表达每个演奏者跳起的高度 beetleBand add height para a2w 不增加参数个数 但是用演奏者的身高来控制跳起来的高度 beetleBand control height with who para a2w 一个参数在方法中可以多次被用到 作业5 1 雪人的脱帽礼为Snowpeople虚拟世界 参考文件 Snowpeople have not defined methods a2w 添加一个全局方法 这个名为flipHats的新方法 将在女雪人把头转向男雪人之后被调用 在flipHats方法中 男雪人用右手摘下帽子 然后优雅地把帽子指向女雪人 随后再把帽子戴到自己头上 在男雪人致完脱帽礼的时候 女雪人也会摘下帽子致脱帽礼 参考视频文件exercise 5 1 swf 作业5 2 迷惑的袋鼠Kanga在内陆四处张望寻觅早餐 Kanga Animals中的袋鼠kangaroo 碰到了相当奇怪的路标sign RoadsandSigns文件夹 Kanga盯着路标看了几秒 然后把头歪到一边显示她的困惑 接着Kanga向左跳了一些 然后转向路标 随后又向右跳了一些 再次转向路标 这样重复了好几次 创建一个程序来模拟这个漫画故事 编写hopLeft方法 Kanga左转一些后跳起 然后转向路标 和hopRight方法 Kanga右转一些后跳起 然后转向路标 每次跳跃 Kanga都会离路标更近些 在World myfirstmethod中 交替地调用hopLeft与hopRight方法 两次 让Kanga沿 之 形跳向路标参考视频 参考视频文件exercise 5 2 swf 分析 创建一个新的虚拟世界 包含如下对象 一个排球网 一个排球 Sports 以及滑冰女孩和普通女孩 People 如下图所示 场景中的每个人都有不同的身高和运动能力 假设每个人都能跳到身高的1 4去击打排球 编写程序让每个人都能在跳起预定的高度后 再落到原来的位置 调用内置的height函数 用数学表达式计算每个人应该跳起和落下的高度 参考文件 volleyballJump a2w请仔细分析其中对人体的动作控制
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!