美文网首页儿童编程Scratch2儿童编程教孩子学Scratch
《龙的城堡》儿童学编程Scratch2之“事件”讲解

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

作者: 一石匠人 | 来源:发表于2018-07-03 22:12 被阅读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.龙宝宝身上的代码

    龙宝宝身上完整代码

    相关文章

      网友评论

        本文标题:《龙的城堡》儿童学编程Scratch2之“事件”讲解

        本文链接:https://www.haomeiwen.com/subject/adtsuftx.html