案例名称:孙悟空学跳跃
学习目标:
- 理解 "按下···键","碰到···"指令的含义和作用.并会用"按下···键","碰到···"指令作为条件判断
- 掌握条件判断指令的一般使用方法
- 能嵌套使用条件指令“重复执行”及判断指令“如果…·那么…”来控制角色
- 能灵活使用“移到x:…y:…”。移动…步”等指令确定角色的初始化位置或改变角色动作。
- PS:具体的单个指令模块详解可以查看《Scratch3.0入门教学》专栏
场景介绍:
相信很多小朋友都喜欢看西游记,西游记里面有个红孩儿,号称圣婴大王,手拿一杆八丈火尖枪,武功非凡。他听说吃唐憎内可以长生不老.就用狂风卷走唐憎,用计骗擒八戒。孙悟空为救师傅与他大战数轮,期间不得不多次躲避他的火攻。我们把这个故事演变成“孙悟空"学跳跃"。通过我们这个Scratch来模拟实现。
案例分析:
程序启动的时候,有一个开始页面“开始游戏”,1秒后进入游戏,红孩儿的火球从左边射出,我们用空格键控制孙悟空进行跳跃躲避,如果孙悟空碰到火球,孙悟空就说一句话【哎呀 受伤了】然后游戏就结束,如果火球没有碰到孙悟空碰到最左边舞台边缘,火球消失,新的火球又重新从右边射出,如此反复进行。
- 角色分析:孙悟空、火球
- 背景分析:开始界面、游戏界面、结束界面
流程分析:
- 孙悟空:开始→初始位置→【(是否按下空格键→进行跳跃)(是否碰到火球→说一句话“哎呀 受伤了”→游戏结束)】
- 火球:开始→初始位置→隐藏→等待1秒→显示【向左移动→(是否碰到舞台边缘→回到起始位置)】
- 背景:开始→开始界面→等待1秒→游戏界面→【播放背景音乐】
- PS:流程分析里面的【】代表循环结构,()代表判断结构
用到的积木模块:
动作模块:
- :角色移动,数字为正时向右,数字为负时向左
- :将角色移动到舞台指定的XY坐标位置
- :将角色X坐标增加指定的值
- :将角色Y坐标增加指定的值
外观模块:
- :在规定时间内说一句话
- :换成指定的背景,改变舞台的外观
- :角色的隐藏和显示,控制角色是否出现
声音模块:
- :播放指定的声音,并等待声音播完之后执行后面的程序
事件模块:
- :当小绿旗被点击时表示程序启动,该执行后面的程序了
控制模块:
- :时间戳,等待指定的时间后执行后面的程序
- :一直重复直行模块里面的程序
- :如果给定的条件为真,则直行模块里面的程序,然后再执行后面的程序
侦测模块:
- :判断当前角色是否碰到鼠标、舞台边缘或者其它角色,如果碰到返回条件“真”,点击下拉小三角符号可以选择其它项:鼠标指针、舞台边缘或其它角色
- :判断指定的按键是否被按下,如果按下返回条件“真”,点击下拉小三角符号可以选择的项有:空格键、方向键(上下左右)、字母键(a-z)、数字键(0-9)以及任意键
程序书写:
孙悟空1:
- 上面这段程序代码就是控制孙悟空进行跳跃
- 小绿旗:程序启动,开始执行后续程序
- 移到XY:孙悟空的初始位置(X:-180,Y:-125)
- 重复执行+条件判断,这是个嵌套,也就是我们的学习目标3,之所以要重复执行,是因为孙悟空跳跃不是跳一次,而是程序一直执行都要需要执行,只要孙悟空没有碰到火球;而条件判断,这边是通过检测我们的空格键是否被按下,按下之后我们就执行具体的跳跃,跳跃里面又有两个有限循环,这个只是控制跳跃的高度,每次将Y坐标+5,所以跳一次Y坐标增加100,孙悟空跳起来了,自然就要在落下来,所以会有两个有限循环,而将X坐标+1是为了让孙悟空往前跳一下,跳一次就是前进20像素。
孙悟空2:
- 上面这段代码呢,是用来检测孙悟空是否碰到了红孩儿的火球,也就是他们是否打起来了
- 同样这里面也是用到重复执行+条件判断,重复执行和上面同理,是保证程序一直执行的时候我们的检测也一直存在;同样这边是通过侦测里面的碰到某个角色来判断是否孙悟空碰到火球,如果碰到了,孙悟空就说一句话,哎呀受伤了,这句话在0.5秒后就消失了,然后换成游戏结束的界面,并且停止全部的脚本
- PS:其实上面的孙悟空1和孙悟空2的代码是可以合并在一起的,把孙悟空2的重复执行里面的条件判断代码放到孙悟空1重复执行,条件判断后面就可以了,我这边之所以分开写,是为了方便解释给小朋友看,比较清晰一点。
火球:
- 小绿旗:同样是程序启动之后,执行后面的程序模块
- 移到XY:这个是火球的初始位置,在舞台的右边(210:-130)位置
- 第3-5个积木块:这个是由于程序开始的时候是先有一个游戏开始界面,而这个界面我们的火球是还没有出现的,1秒之后才真正进入游戏界面,这时候我们的火球才显示出来
- 第6个积木块到后面:这个是我们的火球每次要向左移动3个像素,在移动的同时要判断火球是否碰到了舞台最左边的边缘,如果碰到了,就要恢复到最开始的位置,之所以要把移动和判断放到重复执行里面是为了让我们的火球一直前进,如果没加循环的话只会移动一下就停了。
背景:
- 小绿旗:同样是程序启动之后,执行后面的程序模块
- 第2-4个积木:是程序启动的时候先是有个开始游戏界面,停留一秒之后就进入游戏,换成游戏界面
- 第5-6积木:是一直循环播放我们的背景音乐
演示效果:
【Scratch案例演示】孙悟空学跳跃
思维拓展:
- 小朋友们通过这个案例,你们想到了什么?还有哪些改进的地方呢?
- 是否可以增加计分环节,若成功躲避“火球”,则为“孙悟空”加分喝彩。
- 是否还可以增加扣分环节,让我们孙悟空有一定的生命值,碰到一次减一点生命值,这样可玩性是不是更高呢?