前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >《龙的城堡》儿童学编程Scratch2之“事件”讲解

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

作者头像
一石匠人
发布2018-09-12 10:01:48
1.3K0
发布2018-09-12 10:01:48
举报
文章被收录于专栏:儿童编程

今天我们通过制作一个简单的电子作品《龙的城堡》来学习一下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.龙宝宝身上的代码

龙宝宝身上完整代码

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018.07.03 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  •  1.先计划、再行动——游戏目标设定
    • 故事背景:
      •  目标细化:
      •  2.建造城堡、召唤神龙——背景和角色的设置
      • 3.当把上帝把——为各个角色加上神奇的功能
      •  4.好的作品都是慢慢修改出来的——调试和优化
      • 5.反思阶段
      • 附录:完整代码
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档