在生活中,经常遇到猝不及防的突发事件,这时候需要提前准备好一定的补救措施。例如,我们在去上学的路上发现忘记佩戴红领巾了,那就赶快返回家里去取。又比如,如果今天的值日生生病了,没来上学,就让学习委员担任当天的值日生。在编程中,也有一种类似的事件处理的功能。事件处理是指根据预定义的事件的出现来启动代码的执行,例如当按下键盘上的某个按键、按下绿色的旗帜按钮,或者接收到一条同步消息等事件发生的时候,可能就需要执行一些相应的程序。
在scatch3.0中,“事件”类积木专门用来实现事件处理功能,如下图所示。
![【Scratch2.0编程教程】第六节:事件模块](http://h.yiniuedu.com/56120f6eea508f79429c40c3511fbe92)
下面我们通过一个小程序来实践这些积木的功能。一个人通过各种造型制造出行走的感觉走过城市,走过沙滩,然后再到城市,随着背景的变化,人物的颜色也发生变化。当用户点击“s”键时人停下来,当用户点击“g”键的时候程序又动起来。当点击脚本的时候,人物会和你对话。
![【Scratch2.0编程教程】第六节:事件模块-](http://h.yiniuedu.com/95d50ff21d7baf443d76576609ced1b8)
"【Scratch2.0编程教程】第六节:事件模块")
点击绿旗启动程序,把人物移动到舞台的左下角,造型从第一个开始,背景也从第一个开始,然后执行行走的循环,每移动10步就切换一个造型,如果碰到边缘,那么就广播一条“news1”的消息,说明本阶段走完。
![【Scratch2.0编程教程】第六节:事件模块-少儿编程网](http://h.yiniuedu.com/238a8a36b66e8b168deaf269cfb97793)
【Scratch2.0编程教程】第六节:事件模块")
当角色接收到“news1”消息后,让人从新回到起点,切换背景为下一个,再重复执行行走的循环,碰到边缘和上面的处理方式相同。
[![【Scratch2.0编程教程】第六节:事件模块-少儿编程网](http://code.yanjiansem.com/uploadfile/2019/0723/20190723063830424.jpg)](http://code.yanjiansem.com/uploadfile/2019/0723/20190723063830424.jpg "【Scratch2.0编程教程】第六节:事件模块")
当你用鼠标点击人物的时候,他还会和你对话:“你好,我是Mark,咱们一起去郊游可好?”。
[![【Scratch2.0编程教程】第六节:事件模块-少儿编程网](http://code.yanjiansem.com/uploadfile/2019/0723/20190723063830704.jpg)](http://code.yanjiansem.com/uploadfile/2019/0723/20190723063830704.jpg "【Scratch2.0编程教程】第六节:事件模块")
当按下“s”键的时候,程序停止。当按下“g”键的时候一切继续。
[![【Scratch2.0编程教程】第六节:事件模块-少儿编程网](http://code.yanjiansem.com/uploadfile/2019/0723/20190723063830380.jpg)](http://code.yanjiansem.com/uploadfile/2019/0723/20190723063830380.jpg "【Scratch2.0编程教程】第六节:事件模块")
切换背景的时候,将人物的颜色做一些变化。 在这段程序里,我们用到了大部分的事件模块的积木。当然你也可以根据自己的需要添加一些背景音乐等等。
下面我们再来看看这段脚本的不同:
[![【Scratch2.0编程教程】第六节:事件模块-少儿编程网](http://code.yanjiansem.com/uploadfile/2019/0723/20190723063831651.jpg)](http://code.yanjiansem.com/uploadfile/2019/0723/20190723063831651.jpg "【Scratch2.0编程教程】第六节:事件模块")
这两段脚本都是用来检测用户的方向键的输入,执行以下看看他们有什么不同?他们的区别在于前者可以同时响应多个按键的输入,比如同时按住向上键和向右键,角色能够实现对角线移动。而后者属于响应类的事件积木,同时只能响应一个需求,只能实现单方向移动。
在上面的程序中,我们看到了广播机制。Scratch的广播机制到底是什么呢?任何角色都可以广播带有名称的消息,一般消息的内容具有非常强的可读性。当其他觉得接受到消息后则触发执行相应的脚本。看看下面几个角色,在接收消息和广播消息中的反映。
[![【Scratch2.0编程教程】第六节:事件模块-少儿编程网](http://code.yanjiansem.com/uploadfile/2019/0723/20190723063831750.jpg)](http://code.yanjiansem.com/uploadfile/2019/0723/20190723063831750.jpg "【Scratch2.0编程教程】第六节:事件模块")
下面我们再来看一个广播的例子,一个程序有5个角色,在接收到广播消息后利用图章画出造型花朵图案。
[![【Scratch2.0编程教程】第六节:事件模块-少儿编程网](http://code.yanjiansem.com/uploadfile/2019/0723/20190723063832835.jpg)](http://code.yanjiansem.com/uploadfile/2019/0723/20190723063832835.jpg "【Scratch2.0编程教程】第六节:事件模块")
程序启动时,清空和隐藏所有,点击舞台的时候,发出广播:
[![【Scratch2.0编程教程】第六节:事件模块-少儿编程网](http://code.yanjiansem.com/uploadfile/2019/0723/20190723063832420.jpg)](http://code.yanjiansem.com/uploadfile/2019/0723/20190723063832420.jpg "【Scratch2.0编程教程】第六节:事件模块")
再来看看各个角色的脚本:
[![【Scratch2.0编程教程】第六节:事件模块-少儿编程网](http://code.yanjiansem.com/uploadfile/2019/0723/20190723063832540.jpg)](http://code.yanjiansem.com/uploadfile/2019/0723/20190723063832540.jpg "【Scratch2.0编程教程】第六节:事件模块")
[![【Scratch2.0编程教程】第六节:事件模块-少儿编程网](http://code.yanjiansem.com/uploadfile/2019/0723/20190723063832730.jpg)](http://code.yanjiansem.com/uploadfile/2019/0723/20190723063832730.jpg "【Scratch2.0编程教程】第六节:事件模块")
[![【Scratch2.0编程教程】第六节:事件模块-少儿编程网](http://code.yanjiansem.com/uploadfile/2019/0723/20190723063832248.jpg)](http://code.yanjiansem.com/uploadfile/2019/0723/20190723063832248.jpg "【Scratch2.0编程教程】第六节:事件模块")
[![【Scratch2.0编程教程】第六节:事件模块-少儿编程网](http://code.yanjiansem.com/uploadfile/2019/0723/20190723063833269.jpg)](http://code.yanjiansem.com/uploadfile/2019/0723/20190723063833269.jpg "【Scratch2.0编程教程】第六节:事件模块")
[![【Scratch2.0编程教程】第六节:事件模块-少儿编程网](http://code.yanjiansem.com/uploadfile/2019/0723/20190723063833315.jpg)](http://code.yanjiansem.com/uploadfile/2019/0723/20190723063833315.jpg "【Scratch2.0编程教程】第六节:事件模块")
运行脚本看看,有什么不一样的效果?
在这一课中,我们简短地介绍了Scratch3.0中的一些基本概念和编程方法,以及程序设计中一些较为通用的基本概念,特别是简单展示了它们在Scratch 3.0中是如何实现的。这一课的内容为我们学习后面的编程和游戏的开发打下了一个很好的基础。
- 一、图形化(Scratch3.0)编程
- 一、新手篇
- 1.Scrach前世:Logo语言
- 2.可视化Scratch编程软件的诞生
- 3.Scratch 4P原则
- 4.面向未来的Scratch
- 5.Scratch3.0下载和介绍
- 6.Scratch3.0本地安装
- 7.Scratch3.0编辑器布局介绍
- 二、入门篇
- 1.舞台区
- 2.角色区
- 3.控制区(积木区)
- 4.代码区
- 5.声音的操作
- 6.背景的操作
- 7.逻辑操作
- 7.1逻辑推理
- 7.2形象思维
- 7.3图形推理
- 三、基础篇
- 1.变量的使用
- 2.列表的使用
- 3.条件与循环的使用
- 4.角色动画
- 5.运动积木功能使用详解
- 6.方向键、角色旋转,移动滑行编程
- 7.外观积木功能使用详解
- 8.变大变小(缩放)和显示隐藏示例
- 9. 声音积木功能说明大全—声音积木示例
- 10.事件积木大全
- 1.案例设计-有声音就心动
- 2.事件和消息
- 四、初级篇
- 奥运五环
- 绘制红色实心爱心
- 五、中级篇
- 第1课 小猫数数—初始变量
- 1.1课程学习
- 1.2课程回顾
- 1.3课程练习
- 1.4提高扩展
- 第2课 滑动的数—变量的滑杆模式
- 第3课
- 第4课
- 第5课
- 第6课
- 第7课
- 第8课
- 第9课
- 第10课
- 第11课
- 第12课
- 第13课
- 第14课
- 第15课
- 第16课
- 第17课
- 第18课
- 第19课
- 第20课
- 六、高级篇
- 二、练习题
- 1.一级练习题
- 一级20220619
- 2022年3月一级
- 2021年12月一级
- 2021年9月一级
- 2021年6月一级
- 2021年3月一级
- 2020年12月一级
- 2.二级练习题
- 2021年9月二级
- 2021年6月二级
- 2021年3月二级
- 2020年12月二级
- 3.三级练习题
- 三级20220619
- 2022年3月三级
- 2021年12月三级
- 2021年9月三级
- 2021年6月三级
- 2021年3月三级
- 2020年12月三级
- 4.四级练习题
- 2021年9月四级
- 2021年6月四级
- 2021年3月四级
- 2020年12月四级
- 三、模拟题
- 二级模拟题-飞不出去的蝴蝶
- 二级模拟题-巡线小车
- 四级模拟题-加密解密
- 四、逻辑推理
- 1.逻辑推理
- 五、计算思维
- 1.简单计算思维
- 六、常见问题汇总
- 1.工具问题
- 1.1Chrome不支持WebGL怎么办
- 七、学习
- 一
- 第1课初识图形化编程-软件安装
- 第2课和小猫互动-搭建积木
- 第3课小猫辨真假-添加角色
- 第4课遇见好朋友-移动角色
- 第5课绚丽的舞台-切换背景
- 第6课猜猜我是谁-单击角色
- 第7课跳舞达人秀-设置特效
- 第8课小青蛙过河-编辑背景
- 第9课舞动的蝴蝶-绘制角色
- 第10课百变换新装-本地角色
- 第11课小猫捉气球-随机位置
- 第12课随音乐舞动-播放声音
- 第13课随陨石移动-跟随鼠标
- 第14课舞台变变变-编辑背景
- 第15课机器人变形-巧用摄像头
- 第16课小猫梦游记-综合运用
- 二
- 第1课向城堡出发-了解舞台坐标
- 第2课小猫变魔术-设置角色特效与图层
- 第3课小猫做算术-使用数学运算
- 第4课精准走动的时钟-使用无线循环
- 第5课学习飞行的鹦鹉-使用确定性的循环
- 第6课猫抓老鼠-使用选择结构
- 第7课弹弹球-侦测颜色
- 第8课猜猜我的坐标-使用双分支选择结构
- 第9课放烟花-使用不确定性循环
- 第10课一闪一闪亮晶晶-演奏音乐
- 第11课小猫的魔法书-录制声音
- 第12课画正多边形-使用画笔
- 第13课看看声音的模样-应用画笔
- 第14课打气球-侦测视频运动幅度
- 第15课送小企鹅回家-侦测视频运动方向
- 第16课保卫城堡-综合运用
- 三
- 第1课小猫数数-初始变量
- 第2课滑动的数-变量的滑竿模式
- 第3课跳动的数-初识随机数
- 第4课循环计数--应用多变量
- 第5课营养大师-应用选择嵌套
- 第6课猜数游戏-应用有限循环与选择的嵌套
- 第7课躲避游戏-应用循环与复杂条件判断的嵌套
- 第8课射击游戏-跳出循环的方法
- 第9课七彩图案-设置画笔参数为变量
- 第10魔幻画板-设置画笔的饱和度、亮度与透明度
- 第11课美丽花环-用画笔图章作画
- 第12课雄伟长城-循环嵌套绘制趣味图形
- 第13课魔术表演-初识广播
- 第14课歌舞表演-多角色广播
- 第15课吃虫游戏-对克隆的认识与基本应用
- 第16课击球游戏-克隆的综合应用
- 第17课分装水果-运算积木的综合应用
- 第18课诗词大会-多重逻辑关系的表达与应用
- 第19课寻找高手-文字推理的数学符号表达与应用
- 第20课知识竞赛-综合运用
- 四
- 第1课唐诗复读机-字符串输入输出
- 第2课批改小帮手-字符串处理
- 第3课凯撒密码-字符串应用
- 第4课绘制花团-积木的定义与调用
- 第5课花开满园-有参自制积木的定义与调用
- 第6课雪花曲线-递归算法
- 第7课初识列表-随机点名系统
- 第8课班级花名册管理-列表的应用
- 第9课莫尔斯电码-列表的关联
- 第10课元旦大抽奖-列表的应用
- 第11课时光飞逝-有趣的进制
- 第12课能买多少只鸡?-循环遍历的应用
- 第13课寻找神奇的数字-循环忙不停
- 第14课数的交换-奇妙的算法
- 第15课最大和最小-极值问题
- 第16课计费器-分段计费
- 第17课来电播报-数位分离
- 第18课春游与植树-数的判断
- 第19课国王发金币-神奇的数列
- 第20课 模拟摸球实验-生活中的概率
- 第21课 鸡兔同笼-程序优化
- 第22课 一起来排队1-冒泡排序
- 第23课 一起来排队2-选择排序
- 第24课 扑克牌排顺序-插入排序