儿童编程Scratch2儿童编程教孩子学Scratch

《龙的城堡》儿童学编程Scratch2之“事件”讲解

2018-07-03  本文已影响10人  一石匠人

今天我们通过制作一个简单的电子作品《龙的城堡》来学习一下Scratch2中的“事件”。 “事件”相当于整个程序的各种“开关”、“按钮”、“启动器”。从我们前面的学习中也会发现这些“事件”是每个程序必不可少的部分。

《龙的城堡》界面之一

 好了,我们开始吧!今天的内容非常简单、却非常重要。用简单的功能实现很美好的东西也许就是儿童编程软件Scratch的初衷之一吧。

 我们首先简要概括一下“事件”都包括哪些内容,然后就进入游戏《龙的城堡》的制作。

如下图所示,“事件”分为八种类型,大部分通过字面很容易理解代码块的意思。如当小绿旗被点击时出发之后的程序、当键盘上某一个按键按下时候、当角色被点击时候、当切换到某一背景时候、当声音响度(或者计时器、视频移动)大于某一数值的时候触发相应的程序。还有就是关于“消息事件”,能够给编程带来极大的便利,我们一会儿在案例中详细讲解。

事件命令列表

下面就开始我们的奇幻之旅。

 1.先计划、再行动——游戏目标设定

磨刀不误砍柴工,我们先不要急着编写程序。目标明确了在行动,往往事半功倍。这个过程也是锻炼大家策划、计划、逻辑、思考等一系列能力的重要步骤。

故事背景:

龙妈妈在一个古老的城堡里寻找她的三个孩子,她的孩子都能够隐身。在不同的房间里,龙妈妈呼唤孩子们,孩子依次随机现身,分别跟妈妈打招呼。龙妈妈带着她的孩子在古堡里游荡,同时龙妈妈也能展示绝技。

 目标细化:

 龙妈妈的功能:

(1)游戏开始之后,龙妈妈不停在房间里移动,碰到边界就折返;

 (2)点击龙妈妈,她会吐火;

 (3)通过控制左右键,能够控制龙妈妈的方向;

 (4)通过控制上下键,能够控制背景的切换;

(5)按下空格键、龙妈妈召唤宝宝们;

(6)当背景切换到某一背景时候,龙妈妈展现特技(放大、变色);

(7)游戏开始五秒后龙妈妈旋转一圈。

龙宝宝的功能:

 (1)开始隐藏、听到龙妈妈的召唤现身;

(2)听到妈妈的召唤要回应;

(3)跟妈妈一样在舞台游荡;

(4)当被点击时喷火。

 2.建造城堡、召唤神龙——背景和角色的设置

 首先,我们设置背景,在舞台信息区点击舞台,图中①。屏幕中央出现“背景”选项卡,点击②,选择两个城堡的背景,记住背景的名字。效果如下图所示。

 在角色列表区点击“角色库”按钮,选择龙的角色。然后删除小猫的角色。点击在指令块面板出现“造型”选项卡,可以看出这个角色有两个造型,其中一个能够喷火,看起来很酷。在角色列表右击鼠标可以复制角色,不过我建议大家不要着急,先编辑代码,之后再进行复制,这样能够将角色身上的代码一并复制过来。不过你是个好奇宝宝,没关系,先复制几个,然后再删掉好了。

3.当把上帝把——为各个角色加上神奇的功能

龙妈妈的功能实现:

(1)游戏开始之后,龙妈妈不停在房间里移动,碰到边界就折返

 需要说明一下,当龙碰到边界后开始折返,但是头时向下的,怎么解决这个问题呢,两种方式,见下图:

(2)点击龙妈妈,她会吐火

(3)通过控制左右键,能够控制龙妈妈的方向

(4)通过控制上下键,能够控制背景的切换

(5)按下空格键、龙妈妈召唤宝宝们

(6)当背景切换到某一背景时候,龙妈妈展现特技(放大、变色)

 (7)游戏开始五秒后龙妈妈旋转一圈

龙宝宝的功能实现:

现在角色列表里还没有龙宝宝,怎么办?你当然可以从角色库中再拉一只龙出来。但是还有更好的办法,就是复制一下龙妈妈,然后缩小一下尺寸,我们惊奇的发现,代码也复制了,运行程序之后,小龙具有和妈妈一样的功能。工具位置如图:

我们保留左右移动的功能和吐火的功能,其他的代码块可以删除。怎么样,是不是效率高了很多哇?

(1)跟妈妈一样在舞台游荡

这个功能在复制的时候就已经继承了龙妈妈的代码。

(2)当被点击时喷火

这个功能在复制的时候就已经继承了龙妈妈的代码。

 (3)开始隐藏

加一个“隐藏”命令就可以了。

(4)听到龙妈妈的召唤现身、并回应

这个功能比较听起来比较神奇,小龙怎么能听懂妈妈的话呢?这里就用到了上文中提到的“消息事件”——龙妈妈广播一条消息,小龙听到这个消息就现身。

 具体操作如下,拖拽“当接收到某消息”代码块到编辑区,下拉菜单中选择新消息,弹出的文本框中输入消息名字“孩子们都出来吧!”这个消息名可以起其他的名字,这里为了方便理解,才这样起名。

最后龙妈妈的代码像这样:

 小龙听到了会怎样呢?我们也需要在小龙身上编辑代码,如下:

 4.好的作品都是慢慢修改出来的——调试和优化

现在的作品基本上实现了我们设想的功能,但是还有很多能够完善的地方。就让我们开始吧。

(1)多加几只喷火小龙

一条小龙怎么够,多加几条试试。这个只需要用复制的功能就可以啦!SO EASY!

(2)实现不同小龙差异化

 等待的事件采用随机数。三条小龙跟妈妈说的话进行区别,如三条小龙的名字大毛二毛三毛加入进去。这里就是面向对象编程的“多态”,以后我们学习其他面向对象语言的时候会经常用到这个概念。

(3)如何让龙宝宝们都回应完之后,龙妈妈接着说话。 其实很简单,把广播的代码块更换一下就好了。

好了,我们来看一下截止到目前我们的作品吧!

5.反思阶段

想想今天的这个案例给你带来了哪些启发?

 每个代码块是不是很简单?

如何用简单的代码块组合成复杂的功能?

 尝试着给这个游戏加上音效吧!

你能把这个游戏的变得更好玩么?

附录:完整代码

 1.龙妈妈身上的代码

龙妈妈身上完整代码

 2.龙宝宝身上的代码

龙宝宝身上完整代码
上一篇下一篇

猜你喜欢

热点阅读