第二节Scratch编程课,并不着急着开始游戏编程,而是先简单回顾了上一节课的内容,包含Scratch的操作,角色的添加,对话出现,背景变化怎么实现,如何运行编写好的积木等等。虽然间隔了两三天,但是小朋友大部分内容都还有印象,不错的开始。
第一个游戏——狮子鹦鹉和小苹果(如有雷同,纯属意外)。先介绍了游戏规则,然后使用伪代码描述了第一个角色“苹果”所需要做的操作。
实现以上内容,看似很多,而积木量却是意外的少。
虽然我很贴心的按照颜色以及锁进方式想要表达出一些东西,但是小朋友应该是完全没有感受到老爹的良苦用心。我告诉他,我们只需要照着这段话搭出相应的积木就可以了。然后,对应每一段话语找到相应的积木,实现话语描述的功能。
苹果运动所需要所有的编程积木,即脚本。苹果运动所需要所有的编程积木,即脚本。
语句和积木基本是一一对应的,每一行都是以积木形式出现。虽然只是很简单的一个“苹果”的移动,但是还是涉及到了“循环”、“判断语句”这些编程中最基本也是最实用的理念。“循环”的概念后续会不断提到,所以我也只是详细解释了一下,但是估计这个六岁小学生是没太理解的,好在后面还有无数的机会,不着急。“判断语句”也就是积木的“如果<>那么”,这个概念反而好接受,因为我们生活中不断在使用,虽然未必能使用,但应该是理解了这个积木的含义了。
在这些积木中,最难让小朋友理解的应该是涉及坐标的“移动x,y”积木了。因为他们的世界里还没有出现坐标的概念,也不理解x,y与上下左右的关系。我当时第一反应就是找出Scratch中带有坐标的背景出来好好解释一下坐标概念:
最终还是忍住了。只是将背景换成了这个坐标背景,然后解释了为什么移动到这个位置,以及让小朋友自己拖动界面上的“苹果”到某些位置,从角色界面的x,y上看看位置变化后,这些数值怎么变化的。让小朋友稍微又一点概念即可,就像之前说的,后面用着的地方还多了去了。熟能生巧可不是瞎说的。
还有一个比较难以理解的积木则是“面向()方向”和“移动()步”建立的关系。因为苹果基本是圆的,更改方向直观看不出来,所以换一个角色即可。
上图为运行游戏可使其面向右边蝴蝶面向-78度时的状态,运行游戏可使其面向右边。
多次修改积木的数值,对比结果,小朋友也对面向和移动之间如何产生效果有了直观的了解。然后运行程序,看着“苹果”运动,简单的积木,完成了第一个“角色”的所有运动控制。还是不错的。对于变量“得分”基本简单带过,不想过早引入变量概念。在运行过程中,不断让小朋友改动可以改动的地方,看看结果如何。动手操作就是有热情。至此,第二课结束。
今天开始正式编程,所以涉及了许多新概念,新积木。我想第一个游戏的目的,不是让小朋友立刻懂的所有的这些概念,而是让他自己操作积木,运行游戏,看看积木的作用,熟悉这些积木。因为第一个游戏所包含的很多内容会在以后的编程中不断出现,一开始只是让他知道有这些积木存在,同时看到这些积木的功能,等不断上手操作,不断体会后,自然就能理解了,然后加以应用了。
因为我的设计的课程是循序渐进的学习,所以新的游戏是包含了就游戏所用的功能的基础上增加新东西,所以当学习新游戏的同时也在加深已经学过的东西,嗯,至少我是这么希望的。期待下一次上课中…