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

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

龙宝宝身上完整代码

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Material Design组件

提升用户产品体验的40个产品设计规范

作为一名初级产品狗,原型和prd是基本功。在和竞品需求相同的情况下,产品的很多设计细节让产品产生了不同的差距。从字体颜色位置到核心流程,不同的产品设计方式让用户...

2642
来自专栏互联网杂技

javascript玩具语言的逆袭

2014年10月29日,w3c宣布历经8年的HTML5正式定稿,HTML5是一系列新技术的集合。 HTML5的技术正式入驻移动端,奈何Nati...

3136
来自专栏ThoughtWorks

弯道超车!后端程序员的Angular快速指南|TW洞见

今日洞见 文章作者、图片来自ThoughtWorks:汪志成。部分图片来自网络。本文版权属ThoughtWorks公司所有,如需转载请在后台留言联系。 友情提示...

31110
来自专栏葡萄城控件技术团队

Wyn Enterprise 核心功能:行业领先的在线数据报表设计体验

Wyn Enterprise 将 BI 和报表融为一体,创新性的在线报表设计功能,提供类似微软 Office 产品的使用体验,功能丰富却极易上手。对软件公司而言...

1620
来自专栏CDA数据分析师

Excel到底有多厉害?

来自数据冰山,CDA以获作者授权转载 许多高级程序员瞧不上VBA。因为程序员是有鄙视链的:汇编 >C >C++ >Python >Java及C#及PHP(这三者...

2937
来自专栏互联网杂技

致刚入行的前端工程师

讲真,这篇文章已经憋了好多天了。其实本文可以说是“起于前端,但不止于前端。” 写作的契机是最近在指导一位北京的哥们写前端,有感而发罢了。希望能够给同行一些可行性...

3038
来自专栏前沿技墅

架构设计考古:Bob大叔的整洁之道

The Clean Coder、Clean Code等名著作者Bob大叔,从1970年起编程至今。他是cleancoders.com和UncleBob Cons...

1992
来自专栏编程一生

Redis各种数据结构性能数据对比和性能优化实践

1532
来自专栏程序员互动联盟

暴露程序员身份的五个动作

1.中文输入法输入zz 显示排在第一位是指针的,标准的程序员一枚,不是做C语言就是C++ 中文输入关键字 hs 显示排在第一位是函数的,标准的程序员一枚,分不清...

3536
来自专栏Crossin的编程教室

不就是小游戏嘛,分分钟给你写一个

前天有同学无意间把一个小游戏分享到了答疑群中,我看了一下,其实游戏的代码逻辑并不复杂(简化版的跳一跳,套上个吃鸡的主题),于是就随手立了一个FLAG:

1271

扫码关注云+社区

领取腾讯云代金券