目标

  • 了解对象的概念
  • 了解方法对象的关系
  • 掌握turnTo指令的用法

在开始本章的学习之前,我们先来复习一下上一章的知识点。

在第1章中,我们学会了在这个游戏中最简单的两个指令。

  • step x

    其中,x既可以是正数,也可以是负数。x是正数时,上述指令可以实现让小猴子向前移动x步的功能,为负数时则是倒着走,也就是向后移动。
  • turn y

    其中,y可以取值为left、right或是45这样具体的角度数值,它们分别表示让小猴子向左、向右旋转,或是向左旋转45度。

通过这两个简单的指令,我们不难总结出指令的一般格式如下:

指令 参数

一定要注意的是,指令与参数之间的空格是不可以省略的。不然,计算机就看不明白了。

turnTo

对于turn指令,你会不会觉得使用起来不是很方便,尤其是在需要给出具体角度数据作为参数时。那么,有没有更简单好用的指令可以替代turn呢?

答案是有的。人类总是习惯于偷懒,所以,在这个游戏中,我们又给出了一个名叫turnTo的指令。

它的用法如下,它同样遵循“指令 参数”的格式。

turnTo 对象

以上指令可以让小猴子直接转向你指定的对象,而不必给出具体的角度数值。

对象

这里出现了一个新的名词——对象。

要怎么理解对象这一概念呢?你可以暂时地把对象当作物体去理解,游戏中出现的每一个物体,都是一个对象。

每个对象都有自己独一无二的名字,把鼠标移动到相应的对象上,它的名字就会显示出来。

为了简化代码的输入,点击任一对象,它的名字就会自动书写在右侧的代码输入区里了。

说起对象,还有两个与之相关的新名词,属性方法

属性是指对象的性质,拿香蕉这个对象来说,颜色就是这个对象的一个属性。

再举一个属性的例子。让我们考虑人这一个对象,那么,他的身高、体重、性别等,也都是这个对象的属性。

接着再介绍方法。方法就是指一个对象所能够完成的动作,譬如游戏中的小猴子monkey和即将出场的新朋友——乌龟turtle,这两个对象都能够完成移动step、旋转turn以及转向turnTo的动作,所以我们就说,step、turn、和turnTo是这两个对象所拥有的方法。

为方便理解,再举一个方法的例子。还是考虑人这一个对象,人能够吃饭、走路、工作,所以我们就说,吃饭、走路、工作分别是人这一对象所拥有的三种不同的方法。

问题来了,既然乌龟turtle也能够完成移动step、旋转turn以及转向turnTo的动作,可是我们要如何通过代码去控制它执行这些动作呢?

如何让乌龟turtle移动呢,换句话说就是,如何才能调用turtle的step方法呢,格式如下:

turtle.step x

上述的指令将能够控制乌龟turtle,让它移动x步。

那么,依此类推,我们很容易得到如下的指令:

  • turtle.step x

    让乌龟turtle移动x步
  • turtle.turn y

    让乌龟turtle旋转
  • turtle.turnTo z

    让乌龟转向z

不难想到,

  • monkey.step x

    让小猴子移动x步,等同于前一章的step x
  • monkey.turn y

    让小猴子旋转,等同于前一章的turn y
  • monkey.turnTo z

    让小猴子转向z,等同于turnTo z

怎么样,是不是对上一章的内容又有了更深层次的理解了?

现在让我们来总结一下如何调用对象方法

对象名.方法名

通过以上的指令格式,可以调用对象的方法。

虽然目前暂时还不会用到对象的属性,但可以先了解一下如何使用对象的属性:

对象名.属性名

我们通过上述的指令格式,使用对象的属性。

如果你对上述内容还不能很好的理解,那就暂时先放一下,通过后续的学习,你会逐渐理解的。

好了,本章的内容就学习到这里了。

现在通过以下关卡来检验一下今天的学习效果吧。

作业

  • 故事模式的 11 - 20 关
  • 进阶模式的 2-1 - 2-10 关

    注意,一定保证要所有关卡都拿到三颗星。

本章小结

  • turnTo指令可以实现转向。
  • 乌龟turtle和小猴子monkey一样,都可以完成step、turn和turnTo动作。
  • 通过对象.方法对象.属性的方式,我们可以访问对象方法属性

问答

  • 孩子还不太理解“对象”等概念怎么办?

    不用担心,本章只是先引出对象这一编程中的基本概念,目前孩子知道有这么一个概念就行了。

  • 为什么不给出每一关的通关代码?

    通关的过程也是检验孩子对所学知识的掌握情况的过程,要引导孩子思考,不要直接给他答案。

  • 如何访问CodeMonkey?

    使用电脑浏览器访问http://dwz.date/dY5Y即可。

最新文章

  1. 【requireJS源码学习01】了解整个requireJS的结构
  2. Linux Vsftpd 连接超时解决方法(被动模式)
  3. winAPI 中 的 GlobalLock GlobalUnlock 的作用
  4. HTTP Digest authentication
  5. oracle rac 安装脚本
  6. C-C Radar Installation 解题报告
  7. Android剪切板(ClipboardManager) 复制文本
  8. SZU:A26 Anagram
  9. 简单总结在51cto平台的两日学习
  10. 剑指offer数组列表
  11. paloalto防火墙版本升级
  12. Oracle转换函数
  13. python-web自动化-元素定位
  14. 加深关于Java中char类型的理解
  15. PgSQL基础之 pgsql与mysql的简单区别
  16. [转帖学习]Oracle的 SYS_CONTEXT 函数简介
  17. 理解 process.initgroups(user, extra_group)
  18. hdu 1023 卡特兰数《 大数》java
  19. C#集合概述
  20. springboot 集成 swagger

热门文章

  1. K8S安装Kubesphere
  2. 一位弱校选手的oi经历
  3. C#未能找到路径“\bin\roslyn\csc.exe”的一部分。
  4. 手把手教你搭饥荒专用服务器(五)—MOD自动下载安装(Windows+Linux)
  5. 关于git中的merge和rebase
  6. Bitmap 图像灰度变换原理浅析
  7. 根据来源编号对明细进行分组 跟库存做对比 用到的技术 list根据某个字段分组 Double Long 比较大小
  8. JDBC(六)—— 数据库事务
  9. jQuery的data()方法
  10. 阿里技术专家详解 Dubbo 实践,演进及未来规划