少儿编程Scratch第九讲:小猫跳跳-较完整的跳跃运动

目的

目的:跳跃是很常用的游戏功能。不少游戏都是通过跳动前进、躲避障碍物,获取得分。这一次我阅读了Scratch上关于跳跃的说明和举例。以此为蓝本,由浅入深,练习各种跳跃运动。
 
适用对象:适合有一定编程和数学基础的用户,例如一二年级学生。通过之前约10次的练习,一年级学生能够独立完成本课程中多数功能,或者在家长指引下完成练习。
本游戏共享在:https://scratch.mit.edu/projects/216224542/

实现方式

本程度使用简单的猫咪角色,同时在屏幕最下方放置一红线,即地板。通常的跳跃是要在一定的物体上才能跳跃,例如地面、某个运动的挡板上。空中的跳跃一般称为飞翔。当然开始的时候,也可以随意跳动,并且跳动的速度完全相同。在现实世界中,人跳起来的时候,因为受到重力的影响,速度会逐渐减小直到为零,然后落下,落下的过程中,速度不断增加,达到地面的时候,停止。除了垂直的跳动以外,还可能是往前跃进的跳动(跳远)
参考文档:https://en.scratch-wiki.info/wiki/Jumping

 
少儿编程Scratch第九讲:小猫跳跳-较完整的跳跃运动
 

少儿编程-Scratch

·     少儿编程Scratch第八讲:变量和太空大战(2018/4)

·     少儿编程Scratch第七讲:字母雨打字练习(2018/3)

·     少儿编程Scratch第六讲:抽奖游戏之造型、随机和广播(2018/2)

·     少儿编程Scratch第五讲:练习一坐标和移动(2018/1)

·     少儿编程Scratch第四讲:射击游戏的制作,克隆的奥秘(2018.01)

·     少儿编程Scratch第三讲:宇宙大战.枪战游戏(2018.01)

·       少儿编程Scratch第二讲:奇妙的接球小游戏(2018.01)

·       Scratch第一讲:Scratch完美的初体验(2018.01)

 
下面描述几种跳动方式。
 
一、最简单的跳跃方式
点击数字0,小猫跳动一定的距离,然后停留一小会,落下。上升和下降都是“瞬间位移”的,即立即改变位置。并且在任何地方都可以跳动。
 
测试这种跳跃方式,然后提出问题:我们的实际跳动果真是如此的吗?是瞬间跳到最高处吗?当然明显不是这样,因此需要继续改进。
 

少儿编程Scratch第九讲:小猫跳跳-较完整的跳跃运动
 
二、匀速跳跃
实现往前跳跃,即上前方跳动,并且落下。匀速上升和下降。

  1. 程序开始时,将小猫咪移动到左下角,等待跳动。
  2. 点击上箭头,小猫跳动往上跳动,跳动过程中,循环16次,每次Y轴增加10,同时X轴增加2。这实现了匀速的上升跳跃,和之前的“瞬间位移”好了一些。让小孩思考人的实际跳跃运动是怎么样的。往前跳跃是小孩想出来的,这比较符合实际。
  3. 跳到最高点,可以停留零点几秒,然后开始下降。小孩提出想法,到达最顶端后翻一个跟斗,因此重复执行10次,每次右转36°,即旋转360度。
  4. 下降过程和上升过程相同,循环16次,每次Y轴增加-10,同时X轴增加2。开始的时候设置为X轴增加-2,下降过程中,又回到原点了。这不符合常理。小猫在跳动过程中,一直往前走,因此X轴一直都在增加。
  5. 小猫往右跳动,快到边缘时重新返回到最左边,否则就跳出屏幕了。这个功能很早就熟练了。
  6. 跳动之前和落地之后,更换了一次造型。如果造型合适,能够实现落下后下蹲然后站起的效果。

 

少儿编程Scratch第九讲:小猫跳跳-较完整的跳跃运动
 

 

改进:如果熟练,这里也可以引入变量,例如通过循环次数、单词循环Y轴位移变量,决定跳跃的高度。

 
三、匀速跳跃2
实现往前跳跃,即上前方跳动,并且落下。匀速上升和下降,但上升和下降的速度不同。
按下数字1,实现跳跃,实现方法同上,仅是下降的时候速度比上升的速度低,差异较大时能感觉到漂浮下降的过程。同时小孩选择了,反向翻跟斗。这个翻跟斗是小孩自己想出来的,做出来以后,让三岁小妹妹玩了玩,引起了一片笑声。

 

少儿编程Scratch第九讲:小猫跳跳-较完整的跳跃运动

 
四、从地面上匀速跳跃
功能和第二类似,但增加了地面的判断,只有在地面上才能跳跃,在空中不能跳跃。

  1. 增加一条红线的角色,放在屏幕最下方,模拟地面。即小猫只有碰到这条红线才允许跳跃。
  2. 点击数字2,同时判断是否碰到某个角色或某个颜色,只有满足这两个条件才能跳跃,否则不能跳跃。在“侦测”中,有碰到某个角色,或碰到某种颜色的指令。
  3. 为了测试离开地面后小猫无法跳动,增加上移和下移的操作,按A上移,按Z下移。测试的时候,将按键1的无地板判断的跳跃和按键2带地板判断的跳跃进行比较。

 

少儿编程Scratch第九讲:小猫跳跳-较完整的跳跃运动
 

 

 
五、加速跳跃(考虑重力)
功能和第二类似,但更改了速度。小猫在上升跳跃过程中,速度逐渐减小,直到速度为零。到达最高点以后,下降,速度逐步加快。因此看起来,就比较符合现实场景了。
 

  1. 为了便于控制,引入了y轴的速度变量。
  2. 点击数字3,跳动时,速度设定为15,即每次Y轴增加15,然后Y轴速度增加-0.5.重复执行30次。到达顶部的时候速度已经为零。
  3. 到达顶部的时候,停留0.1秒。
  4. 下降的时候,将Y的速度增加0.5,即Y坐标的每次增加值为0.5的倍数。实现加速下降的功能。
     

 

少儿编程Scratch第九讲:小猫跳跳-较完整的跳跃运动
 
 
六、两次连续跳跃(考虑重力)
功能上面带重力的跳跃类似,只是这里实现了连续跳两次的功能,每次的高度相同。

 

  1. 为了便于控制,程序块积木。在积木中实现跳跃代码,带重力功能。这样能够减少主程序的代码量。
  2. 点击数字4,调用一次积木,然后接着再调用一次积木。实现两次跳跃。

 
 

少儿编程Scratch第九讲:小猫跳跳-较完整的跳跃运动
 

 

少儿编程Scratch第九讲:小猫跳跳-较完整的跳跃运动
 

七、多次连续跳跃(考虑重力,高度逐步降低)
功能与上面两次跳跃类似,这里实现了多次跳跃的功能,每次的高度逐步降低。通过这种方式,能够模拟扔皮球的动作。即往上前方抛球,球往前弹起,然后落下,高度逐渐降低。
 

  1. 依然使用了积木块,增加了高度的变量。
  2. 少儿编程Scratch第九讲:小猫跳跳-较完整的跳跃运动
  3.  
  4. 点击数字5,设定跳跃高度,然后调用一次积木,然后再设置一个跳跃高度,再调用一次积木。这里跳了五次,高度从30201053。如果水平好一些,可以多加一个循环进行处理。

 

少儿编程Scratch第九讲:小猫跳跳-较完整的跳跃运动
 

上面列了7种跳跃方式,通过这节课,对跳跃应该比较好理解了。

 

原文始发于微信公众号( 艾博特 ):少儿编程Scratch第九讲:小猫跳跳-较完整的跳跃运动|

少儿编程Scratch第八讲:变量和太空大战

目的

目的:变量是程序最为基本的要素之一。本程序制作了游戏“太空大战”。初始时,超人的生命值为3,碰到火龙,超人生命值减1。生命值为0则超人牺牲。超人在飞行中获取金币时得分,集满10个金币,生命值加1。本游戏使用了一些变量,通过变量存储分数、金币数量、生命值,在运行过程中修改相关变量。
 
适用对象:适合一年级初学者使用。本游戏的初稿基本由小孩一个人完成,后续在讨论指导下,丰富了其他功能。
 
本游戏共享在:https://scratch.mit.edu/projects/195739577/
 
微信订阅号:ABO_CRM
 

少儿编程Scratch第八讲:变量和太空大战
程序执行中的页面。
 

 

 

少儿编程-Scratch

·     少儿编程Scratch第七讲:字母雨打字练习(2018/3)

·     少儿编程Scratch第六讲:抽奖游戏之造型、随机和广播(2018/2)

·     少儿编程Scratch第五讲:练习一坐标和移动(2018/1)

·     少儿编程Scratch第四讲:射击游戏的制作,克隆的奥秘(2018.01)

·     少儿编程Scratch第三讲:宇宙大战.枪战游戏(2018.01)

·       少儿编程Scratch第二讲:奇妙的接球小游戏(2018.01)

·       Scratch第一讲:Scratch完美的初体验(2018.01)

 

实现方式

简单描写一下过程吧。
 
一、变量
均为跨角色的变量,即全局变量。
分数:每收集一枚金币,分数加1
生命值:初始值为3,超人有三条命。三条命用完,超人牺牲,游戏结束。每碰到火龙一次,就减1。相当于三条火龙等于一个超人。
金币数量:超人收集的金币数量,数量满10(或5),立即兑现一条命,即生命值加1,金币数量归零。
 
少儿编程Scratch第八讲:变量和太空大战
四个角色
 
 

二、超人角色

  1. 1.     在造型中,自己用画笔简单画了一个超人。
  2. 2.     开始时,设置各变量的初始值。
  3. 3.     开始的时候,超人在左中间。否则可能就找不到了。这是后来加上去的。
  4. 4.     实现上箭头和下箭头的按键,超人上下移动。这种移动放在一个大循环中,已经很熟练了。
  5. 5.     如果碰到火球(金币),分数加1。分数的变量已经用过好几次,已经比较熟练了。
  6. 6.     游戏结束处理:如果生命值为零,则超人隐藏,结束游戏。

这里有改进,开始时并没有生命值的概念,只要碰到火龙就结束。后来我们说设置三条命,碰到三次火龙,才结束游戏。

游戏结束时,切换一下游戏结束的背景,告诉玩家游戏结束了。

游戏结束后,停止所有脚本。否则飞龙和火球会继续飞出来。

 

少儿编程Scratch第八讲:变量和太空大战
简单画了一个超人。
 

少儿编程Scratch第八讲:变量和太空大战
超人脚本,上移,下移。生命值为零时,结束游戏。碰到火球,分数加1.
 

少儿编程Scratch第八讲:变量和太空大战
游戏结束画面,太难看啦。

三、火龙角色

  1. 1.     火龙角色从右边飞往左边,因此需要不停的克隆。这一步已经很熟悉了。
  2. 2.     克隆体启动时,重复执行,不停的从右边到左边,因此X减少10
  3. 3.     克隆体启动时,Y方向需要随机出现一个位置,否则位置就固定了。移动到X=240Y-180180随机选择一个坐标值。这一步也熟练了。
  4. 4.     如果碰到左边的竖线,就删除克隆体。开始的时候,小孩使用了隐藏功能。在克隆方式中,还是使用删除克隆体为好,否则该克隆体还是存在的,会逐步拖累系统的速度。
  5. 5.     如果碰到超人,将生命值减少1。超人生命减少。同时删除火龙的克隆体。就是三条火龙的命能够消灭超人。

 

 

少儿编程Scratch第八讲:变量和太空大战
火龙脚本,碰到超人,生命值减1
 

 

少儿编程Scratch第八讲:变量和太空大战
画了一个火球。
 

四、金币(火球)角色
火球角色和飞龙的角色功能类似。

  1. 1.     火球角色从右边飞往左边,因此需要不停的克隆。
  2. 2.     克隆体启动时,重复执行,不停的从右边到左边,因此X减少10
  3. 3.     克隆体启动时,Y方向需要随机出现一个位置,否则位置就固定了。移动到X=240Y-180180随机选择一个坐标值。
  4. 4.     如果碰到左边的竖线,就删除克隆体。
  5. 5.     如果碰到超人,就是被超人收集了,分数加1。金币数量加1删除克隆体。如果金币数量等于510),生命值增加1,同时将金币数量重置为0.

 
 

少儿编程Scratch第八讲:变量和太空大战
金币脚本,碰到超人,金币数量加1。金币数量等于5,加一条命。
 

五、竖线角色
竖线角色不用添加任何脚本。碰到竖线就删除克隆体,这也是一种常用的方式。在击球运动中,碰到球板则反弹,使用了横线。
 

原文始发于微信公众号( 艾博特 ):少儿编程Scratch第八讲:变量和太空大战|

少儿编程Scratch第七讲:字母雨打字练习

已经有些天没能更新Scratch的文章了。周末依然会带小孩玩一会Scratch,实现一些功能,主要是完善第四讲中的射击游戏,实现了敌方,制作了得分。后来还实现了双人版,两个人一起玩,各自得分。这周的练习是字母雨打字练习。所用技术和之前类似,克隆、移动、随机,算是巩固相关知识。

目的

制作字母打字游戏。字母随机从屏幕上方出现并往下坠落,坠落过程中,按下对应的字母键,该字母即消失,得分。

少儿编程Scratch第七讲:字母雨打字练习

[结果运行图]

实现方式

主要技术是克隆、移动和随机。本游戏只需设置一个角色,里面包含26个字母造型。开始时,每隔一段时间即克隆该角色本身,克隆体启动时,不停往下移动。监控是否有按键按下,按下以后,对应的克隆体消失。为了让字母从屏幕不同位置出现,因此对于角色的X轴需要随机取值。

制作步骤

第一步:添加角色和造型。

1.    加入一个字母角色

2.    在这个角色中,按字母顺序依次加入其它25个字母造型,总共有26个造型。

少儿编程Scratch第七讲:字母雨打字练习

【角色,我们重命名了造型,但其实并没有什么用。获取造型时,得到的是造型编号,而不是名称】

 

第二步:克隆角色,坠落。

3.    开始后重复执行,无限循环

4.    每一次循环都克隆一个字母角色,因此循环里面可以增加时间,如等待2秒。等待时间越短,克隆的字母就越多。

少儿编程Scratch第七讲:字母雨打字练习

 

5.    克隆体出现以后,进入循环,X轴保持不变,Y轴不停减少。即将到达屏幕时,删除克隆体。

少儿编程Scratch第七讲:字母雨打字练习

 

 

第三步:接受按键,消除字母

6.    新设一个克隆体启动事件,启动即不停循环检查是否有按键。(一个无限大循环后面就不能添加其他代码,因此需要另起炉灶,新增一个克隆体启动事件)

7.    如果A被按下,判断那造型编号是否为1,如果是1,则计分,并且删除克隆体,增加得分。造型获取中并没有获取造型名称的语句,只有获取造型编号的语句,因此造型需要按顺序排列。

少儿编程Scratch第七讲:字母雨打字练习

 

第四步:随机字母

8.    克隆自身之前,将造型切换为1-26的随机数字,即在26个字母中随机选择一个字母。如果不进行随机处理,那么字母将按顺序依次出现。

后续改进

本打字练习,仅随机选取26个字母。在实际的英语录入是按照单词句子进行的。如果能够存储一定数量的单词,然后依次显示某个单词中的字母,形成单词中的字母雨,那将更贴近实际。同时在应用技术上,能更上一层楼。

分享地址:https://scratch.mit.edu/projects/209062172/

浏览器中需要Flash播放器。

 

原文始发于微信公众号( 艾博特 ):少儿编程Scratch第七讲:字母雨打字练习|

少儿编程Scratch第六讲:抽奖游戏之造型、随机和广播

 

 

目的

目的:抽奖游戏运行时会不断的快速切换很多奖品,点击停止,画面停在某个奖品上,即为用户所抽到的奖品。这节课学习如何制作抽奖游戏。通过抽奖游戏,理解背景、角色、造型、随机和广播的功能。
 
少儿编程Scratch第六讲:抽奖游戏之造型、随机和广播
 

适用对象:适合一年级初学者使用。在老师指导下,学员基本能够独立完成。
背景:之前给小孩玩过一会“果果老师”编写的抽奖游戏。一天下班回来后,小孩跟我说他自己做了一个抽奖的游戏。我很惊讶,不大相信。开机,检查,还真的是一个很不错的抽奖的程序。当然这是一个简单的抽奖游戏,还有很多可以改进的地方。因此我就顺着这个抽奖游戏雏形,逐步深入讲解和制作抽奖游戏。
 
本游戏共享在:https://scratch.mit.edu/projects/200876858/
MITScratch是一个社区,可以共享程序,其他人可以查看代码,进行改进(Remix)。虽然访问MIT的网站会慢一点,但我们已经习惯在网上直接制作程序,不安装和使用客户端Scratch软件了。
微信订阅号:ABO_CRM
 
 

少儿编程-Scratch

·     少儿编程Scratch第五讲:练习一坐标和移动

·     少儿编程Scratch第四讲:射击游戏的制作,克隆的奥秘(2018.01)

·     少儿编程Scratch第三讲:宇宙大战.枪战游戏(2018.01)

·       少儿编程Scratch第二讲:奇妙的接球小游戏(2018.01)

·       Scratch第一讲:Scratch完美的初体验(2018.01)

 

 

实现方式

最简单的抽奖游戏:这一个版本就是小孩自己琢磨出来的。即将所有的奖品都放在一个角色中,然后点击绿旗子开始时,立即进入一个大循环,然后在循环里面不停的切换造型。点击结束时,系统就会将奖品停在某个造型上,就是最后的奖品。因此只需要三个指令:开始、循环、下一个造型。
 
抽奖游戏逐步改进:上述抽奖游戏是最简单的版本,是有一些缺陷的。
第一个大问题是奖品的出现不是随机的,是依次按顺序更换造型。虽然小孩加入了42个造型,但是每次运行时,系统是按已经固定的礼品顺序抽取的。这不大公平,因为用户可以记住奖品的大概顺序。虽然奖品跑得很快,但还是能够知道奖品的前后大概顺序的。要解决这个问题,就需要使用随机的功能。即从两个数字之间随机挑一个数字。Scratch提供了“在XXYY之间随机选一个数字”的功能。在更换造型中,可以使用“更换造型XX”。要使用随机数,就要把角色的造型重新命名为数字,否则以前的英文单词形式,是不能随机抽取的。其实我们之前看的“果果老师”的抽奖程序也是没有使用随机功能的。
 
第二个问题是抽奖的开始和结束问题。现在的抽奖是使用系统的开始结束按钮。如果需要在游戏页面内部自己制作按钮,然后点击开始按钮即开始抽奖,点击停止按钮就停止。用户可以多次点击开始和结束。因为按钮和奖品属于两个角色,因此要使用广播功能,开始按钮通知奖品开始摇奖,停止按钮通知奖品停止摇奖。
 
第三个问题是一个小问题。小孩自己做的抽奖程序中,一开始奖品就是显示的。实际抽奖过程中,奖品肯定是先隐藏的。这个改进很简单,即程序开始时,将奖品设置为隐藏,抽奖开始的时候才显示出来。
 
第四个问题是后续改进。抽奖是一个激动人心的过程,因此通常要增加激动人心的音乐,停止的时候,还可以切换一些灯光,播放停止的音乐。切换灯光可以通过变更背景实现。播放音乐的功能打算放到以后课程内再讲。
 
功能1:角色(孩子已熟悉)
一个图片或物品都可以作为角色,角色有一个脚本,程序写在角色的脚本中。这是Scratch的基本功能。
可以新建角色,默认角色是一个小猫咪。先删除小猫角色,系统提供了动物、奇幻、字母、人物、物品、交通等角色分类。
例如我们添加了小绿旗子和停止按钮两个角色。“当小绿旗子被点击”,就是开始按钮,然后执行一些操作,即开始抽奖。点击停止按钮时,抽奖结束。再次点击开始按钮,可以重新抽奖。
 
功能2:造型
每一个角色可能有一个或多个造型。造型是实现动画效果的重要方式。例如角色“猫”。猫有两个角色,通过切换造型实现小猫奔跑的动作,切换造型会实现动画的效果。在一个角色中放多个造型是Scratch的常用方式,否则可能会编写很多重复的代码。例如实现0-9数字加减法,打字程序a-z 26个字母,如果每个数字或字母都设置成单独的角色,那么这些角色中很多代码是完全相同的。使用一个角色,然后加上克隆功能,就可以实现打字、加减法游戏。
 
例如,在该抽奖游戏中“旗帜”的造型分两个,一个正的一个斜的。见下图所示,
 

少儿编程Scratch第六讲:抽奖游戏之造型、随机和广播
 
 

切换时产生运动的效果,旗帜摇动起来。系统中的小旗子其实是只有一个造型的。讲解了可以复制一个出来,然后稍作调整,例如旋转一定的角度。然后切换造型,就可以实现一定的动画效果。
 
 

少儿编程Scratch第六讲:抽奖游戏之造型、随机和广播
 

<小猫的两个造型,不停的切换造型,看上去,小猫就奔跑起来了。>
 
系统指令:下一个造型,实现切换功能。
 

 
少儿编程Scratch第六讲:抽奖游戏之造型、随机和广播
 

下面通过造型做出抽奖游戏。这个版本也就是小孩自己制作的最原始的抽奖游戏版本。这个脚本放在奖品上,一个大循环,然后下一个造型,没有随机。奖品即不停循环显示,点击停止,就会停在某一个奖品上。
然后同理,将这个脚本放在小猫咪角色上,小猫咪就跑动起来了。当然如果不加等待时间,小猫咪的跑动就实在是太快了,快被累坏了。因此设置了等待0.1秒,才更换下一个造型。这样小猫咪的跑动就会正常一些。
 
 

制作步骤

第一步:选择舞台背景:这个舞台背景是小孩自己选的。
 
少儿编程Scratch第六讲:抽奖游戏之造型、随机和广播
 

 
 

加入了小猫咪,在不停的跑动;加入了一个西瓜,西瓜也切换造型。说这是小猫咪在吃西瓜。然后加入了雪人,说雪人和小猫咪在舞台前面观看抽奖。加入了两个雪花角色,当装饰使用。这些是小孩自己加上去的。
 
后来我们在改进环节,加入绿旗子开始按钮,和橙色的停止按钮。绿旗子和停止按钮都复制了一个造型,稍微转动一下,实现动画效果。这样程序开始时,就知道这两个地方是可以点击了。
 
第二步:设置奖品角色的造型

1.   首先随便选择一个物品作为奖品角色。然后在这个角色中增加其他造型,即其他奖品。

【操作步骤】选择奖品角色,“从造型库中选取造型”。选多少个即有多少个奖品。这些造型都同属于一个角色。如下图所示,
 
 

少儿编程Scratch第六讲:抽奖游戏之造型、随机和广播
 

孩子添加了42个造型,这42个造型都同属恐龙这一个角色,随着奖品的切换,角色上的图也会跟随切换。
 

 
少儿编程Scratch第六讲:抽奖游戏之造型、随机和广播
 

2.     为了使用随机函数,我们造型进行数字编号,更改造型名称为数字。选中造型,右上角更改录入数字,按照顺序录入数字即可。

少儿编程Scratch第六讲:抽奖游戏之造型、随机和广播
 

 
问题:目前多个造型是按顺序排列执行切换,不是随机的。能够猜出奖品,可以控制奖品。我们要做成随机的。所以要进行以下拓展操作。如果在更换造型中增加等待2秒,那么能够很明确的看到,系统是按顺序更换造型的。加入随机功能以后,系统就从42个奖品造型中随机抽取一个了。用户就无法猜测系统下次将显示哪一个奖品了。
微信订阅号:ABO_CRM
 
第三步:设置随机显示造型

1. 随机的介绍:即系统中提供这样的指令,从一个数到另外一个数之间随机选一个数。例如,如果有42个造型,每次都是从中随机挑选一个。因此,需要从142中,随机挑选一个数字。

2. 【操作】点击奖品角色的脚本,添加“将造型切换为在1-42之间随机选择一个数”。我们需要将随机数放在造型切换指令中。因此我们需要将这两个指令拼在一起。这是一种很常用的方式,需要熟练掌握。

少儿编程Scratch第六讲:抽奖游戏之造型、随机和广播

 

开始时,请先忽略广播。在最简单的抽奖游戏中,也可以使用这个随机功能。
【操作步骤1】点击脚本—外观,选择少儿编程Scratch第六讲:抽奖游戏之造型、随机和广播
 

【操作步骤2】点击脚本—运算,添加指令 少儿编程Scratch第六讲:抽奖游戏之造型、随机和广播
 

造型是有编号的,系统默认编号为英文字母,我们之前对造型进行编号,该游戏中有1-42个造型编号。已更改编号为1-42
 
【操作步骤3】把少儿编程Scratch第六讲:抽奖游戏之造型、随机和广播拖到少儿编程Scratch第六讲:抽奖游戏之造型、随机和广播中。即
少儿编程Scratch第六讲:抽奖游戏之造型、随机和广播
 

 

这样,每次执行就会随机显示一个造型。
 
第四步:实现对奖品角色的开始和结束广播功能。(如果不自己制作按钮实现开始和结束的话,抽奖程序会简单很多。)
Scratch中,角色就是我们需要使用程序操作的对象。角色和角色之间是相对隔离的。如果一个角色需要通知另外一个角色要做什么事情,那么我们可以使用“广播”的功能。“广播”就是对程序中每个角色“大喊一声”,这样其他角色才能听到,听到以后,他们就去做一定的事情。否则别的角色是不知道其他角色要他做什么的。在这里,开始和结束是两个按钮角色,点击以后,要告诉奖品角色,开始或结束抽奖。开始按钮喊“开始抽奖”,抽奖的角色接收到这个消息以后,就显示奖品,开始抽奖。结束按钮喊“结束抽奖”,抽奖的角色接收到这个消息以后,就停止抽奖,显示抽中的奖品。
 
目的,用点击按钮的方式实现对一个角色的开始结束动作。

1. 添加旗帜图标角色少儿编程Scratch第六讲:抽奖游戏之造型、随机和广播表示开始;

2. 添加八边形图标角色少儿编程Scratch第六讲:抽奖游戏之造型、随机和广播表示结束。

3. 设置造型,开始和结束角色图标都有两个造型,切换造型产生动画效果。

 
4. “等待”操作:点击新增的开始按钮时,奖品角色开始快速变化。如果不想让它动那么快,在脚本控制中选择少儿编程Scratch第六讲:抽奖游戏之造型、随机和广播

,例如更改时间为0.1秒。



要设置等待多少秒。就不会变化太快。
 
功能3:广播

1. 对开始角色进行广播

例如,开始的时候要告诉角色奖品开始抽奖了,当角色被点击这个事件开始时,做一个广播,即喊一声开始抽奖。通过广播的形式,对方(奖品)接到抽奖信息开始随机切换奖品。广播就是让一个角色喊一声。
广播可以新建消息,比如让小旗帜喊一声开始抽奖,奖品收到信息后便开始切换造型。
点击开始旗帜角色少儿编程Scratch第六讲:抽奖游戏之造型、随机和广播,脚本—控制,如下图,少儿编程Scratch第六讲:抽奖游戏之造型、随机和广播
 

 
当开始角色被点击时,广播“开始抽奖”。
奖品角色收到这个广播消息以后,就开始抽奖。
少儿编程Scratch第六讲:抽奖游戏之造型、随机和广播
 
当结束角色被点击时,广播“结束抽奖”。
奖品角色收到这个广播消息以后,就结束抽奖。结束时,我们使用了一个巧妙的指令“停止角色的其他脚本”,即系统将这个角色中的其他脚本停止掉,也就是说系统会将开始抽奖的那一段无限制循环停止运行。如果停止所有脚本,系统将停止所有角色的脚本,那么开始、结束、小猫咪等角色将被停止运动。我们想用户可以继续抽奖,所以这些角色继续执行。还可以选择停止当前脚本,就是停止收到结束抽奖后的其他脚本,这里其实是没有其他脚本的。如果不想使用这个指令,那就要使用一个全局变量了。变量功能,将在后续课程中介绍。
 

2. 对结束角色进行广播

奖品一开始设置为隐藏。当点击结束少儿编程Scratch第六讲:抽奖游戏之造型、随机和广播时,结束抽奖,奖品收到结束抽奖消息时,停止该角色的其他脚本。即只停止奖品这一个角色的脚本。奖品运动结束,小猫和西瓜等其他角色仍然在动不受影响。
点击结束八边形角色,脚本—控制,如下图,
少儿编程Scratch第六讲:抽奖游戏之造型、随机和广播
 

只有点击系统自带的右上角脚本旁边的停止按钮时,才会停止全部角色的脚本。
 
以后的提升练习:添加播放声音,比如添加开始和结束时的声音。
 
本章重点:

1,造型:每一个角色可能有一个或多个造型。

2,切换造型:如果不想变化很快,添加等待指令。

3,随机:随机找一个造型:对造型进行数字编号,添加随机指令,将造型切换为在1-X之间随机选择一个数。

4,广播:广播就是让一个角色喊一声,对方收到广播后执行命令。

 

原文始发于微信公众号( 艾博特 ):少儿编程Scratch第六讲:抽奖游戏之造型、随机和广播|

少儿编程第五讲:Scratch练习一坐标和移动

目标

理解坐标和角色的移动。通过键盘或鼠标控制小猫的移动,按左箭头就往左走,按右箭头往右走,按上箭头往上走,按下箭头往下走。

实现基本的移动功能以后,进一步增加对边框的限制,使得小猫不能超出边框。

适用对象:本练习适合一年级初学者使用。在老师指导下,学员基本能够独立完成。对坐标的判断,难度较大一些,需要理解坐标的大小比较。

 

上机操作题

 

少儿编程第五讲:Scratch练习一坐标和移动
(三个角色,对应三种方法。)
 

练习题1用键盘控制角色的移动,实现:

按上箭头↑,角色往上移动;

按下箭头↓,角色往下移动;

按左箭头←,角色往左移动;

按右箭头→,角色往右移动。

 

习题2练习1中,当用键盘将角色移动的舞台边缘时,角色将被遮挡一部分。要求实现:角色不被遮挡,即移动到接近边缘时,如果继续按键,则角色不再往舞台外移动。如此,角色只能在一定的范围内移动,不能超出边框。

按上箭头↑,角色往上移动;

按下箭头↓,角色往下移动;

按左箭头←,角色往左移动;

按右箭头→,角色往右移动;

控制小猫不能越界,XY轴需要增加什么限制?

 

习题3练习1和练习2使用键盘作为输入,实现对角色的移动。本练习实现用鼠标移动角色,即角色跟随鼠标不停移动。

练习关键知识点

 

  1.   事件:开始。可以设置一个或多个开始事件。

  2. 事件:当按下??键。检测某个安检是否按下,使用这个指令,可以实现角色跟随上下左右箭头的移动。

  3. 外观:将角色大小设置为??如果角色过大,可以减少角色的尺寸,通常在启动时设置角色的大小,50即为角色原大小的一半。

  4. 运动:X坐标增加??很常用的运动方式,X坐标增加则往右移动,增加为负数则往左移动。注意系统没有X坐标减小的指令,因此需要转换成增加负数的指令。

  5. 运动:Y坐标增加??同X坐标增加。

  6. 运动:移到???:移动到鼠标、某个角色上,例如发射子弹时,子弹从坦克、飞机等身上发射,则先将子弹移动到飞机上。移动到鼠标,则跟随鼠标移动。

  7. 运动:移到X:?? Y:??开始时,使用这个指令,可以将角色移动到零点或者某一个角落。

  8. 运动:X坐标(获取X坐标值)。在如果…那么…的判断中,可以判断X坐标是否在一定的范围内。例如X坐标<-220(左边),则X坐标不允许再次减小,即不能继续往左移动。例如X坐标>220(右边),则X坐标不允许再次增加,即不能继续往右移动。使用时,需要考虑使用大于还是小于的判断符。

  9. 运动:Y坐标(获取Y坐标值)

  10. 控制:如果…那么…

  11. 侦测:按键??是否按下。可以在重复执行中检测按键是否被按下。这种方式也可以实现角色跟随上下左右箭头的移动。

  12. 运算:??>??

  13. 运算:??<??

  14. 控制:重复执行

练习讲解要点

 

练习一:

方法一:使用按键按下的事件,如果收到上下左右的箭头按键,则X坐标或Y坐标增加10-10.

如果不增加XY坐标的大小判断,角色将会移动舞台。

少儿编程第五讲:Scratch练习一坐标和移动
蝙蝠的运动:使用了当按下???键的事件,因此放4个事件。如果不判断出界,那就很简单了。点击开始时,增加造型切换的指令。为了控制蝙蝠翅膀拍打快慢,造型切换的循环中增加等待时间。
 

 

方法二:开始后直接进入循环,在循环中如果那么判断,判断条件中检测上下左右箭头被按下,如果按下,则X坐标或Y坐标增加10-10。效果和方法一类似,但比方法二要复杂一些。

少儿编程第五讲:Scratch练习一坐标和移动
地球移动:大循环中,如果那么中判断是否有按键按下。
 

 

练习二:角色跟随上下左右箭头移动时,如果不增加XY坐标的大小判断,角色将会移动舞台。因此本练习是添加X坐标和Y坐标的大小判断。

如果X坐标小于220,那么X坐标增加10.即如果X坐标小于220,允许继续右移。否则,不允许右移。实现不超出右边框的功能。

如果X坐标大于-220,那么X坐标增加-10.即如果X坐标小于-220,允许继续左移。否则,不允许左移。实现不超出左边框的功能。

上下通过Y坐标大小控制,注意正负数和大小判断即可。

练习三:角色跟随鼠标移动。开始后进入循环,然后每个循环都移动到鼠标即可。

如果要增加判断,例如到某一个边界不允许继续移动,则增加练习一和练习二中的坐标判断。

少儿编程第五讲:Scratch练习一坐标和移动
球的移动:这个最简单。重复执行中一个指令:移动鼠标指针即可。为了更换球的造型(球的颜色会依次变换),循环中增加了时间等待。当然这会导致移动不够顺畅。所以可以新增一个启动事件,单独处理造型的变换。

 

 

填空选择题

 

  1. 舞台坐标有两个轴,分别是横向坐标( )轴和纵向坐标( )轴。

  2. XY两个坐标,能够唯一确定一个点。舞台坐标中心点,x=    ),y=    )。

  3. Y坐标最大为舞台最上方,坐标值为(        )。

  4. Y坐标最小为舞台最下方,坐标值为(        )。

  5. X坐标最大为舞台最右方,坐标值为(        )。

  6. X坐标最小为舞台最左方,坐标值为(        )。

如果角色往右水平移动,下面哪个正确?(  

AX增加  B. X减少 C. Y增加 D. Y减少

 

如果角色往左水平移动,下面哪个正确?(  

AX增加  B. X减少 C. Y增加 D. Y减少

 

如果角色往上垂直移动,下面哪个正确?(  

AX增加  B. X减少 C. Y增加 D. Y减少

 

如果角色往下垂直移动,下面哪个正确?(  

A.X增加   B. X减少 C. Y增加 D. Y减少

如果角色往右上方斜向移动,下面哪两个答案是正确?(    

AX增加  B. X减少 C. Y增加 D. Y减少

 

如果角色往右下方斜向移动,下面哪两个答案是正确?(    

AX增加  B. X减少 C. Y增加 D. Y减少

 

如果角色往左上方斜向移动,下面哪两个答案是正确?(    

AX增加  B. X减少 C. Y增加 D. Y减少

 

如果角色往左下方斜向移动,下面哪两个答案是正确?(    

A.X增加   B. X减少 C. Y增加 D. Y减少

X=0时,X坐标增加10步,x=10X坐标再增加10步,x=   );即每执行一次增加10步。每次增加步数越多,说明(   

A.跑得越快   B. 跑得越慢

 

小猫往左移动(←),X增加值为(  

A.正数  B. 负数

 

小猫往右移动()X增加值为(  

B.正数  B. 负数

 

小猫往上移动()Y增加值为(  

C.正数  B. 负数

 

小猫往下移动()Y增加值为(  

D.正数  B. 负数

后续练习

依然是角色的移动,但需要实现角色的自动移动。例如角色从中央开始,然后自动往右移动,到右边框时,自动折返,然后碰到左边框时,自动往右,如此往复。

如果更复杂一些,可以实现角色在屏幕中按照长方形的方式移动。如开始时,角色位于右下角,然后自动往上、往左、往下、往右回到起点。

原文始发于微信公众号( 艾博特 ):少儿编程第五讲:Scratch练习一坐标和移动|

少儿编程Scratch第四讲:射击游戏的制作,克隆的奥秘

 

上周的宇宙大战射击游戏中,我们只完成了宇宙飞船发射子弹的部分。还未制作敌对方。这周制作了敌方-飞龙,飞龙随机在屏幕上方出现,如果被子弹打中,则得分,飞龙和子弹都消失。
少儿编程Scratch第四讲:射击游戏的制作,克隆的奥秘
敌方:飞龙;计分。
 

目的

目的:制作射击游戏的敌方-吐火的飞龙。当子弹碰到飞龙时,飞龙被消灭,同时增加分数。
 

实现方式

克隆依然是重要的操作。 每一只飞龙出现时,都需要先克隆一份,然后设定一定的随机方向,从屏幕上方往下移动。为了让飞龙有飞的感觉,我们切换飞龙的造型。飞龙在普通造型和吐火的造型中来回切换。
如果碰到子弹(闪电),则删除飞龙的克隆体。系统设置了一个全局变量,记录分数,飞龙被打中后,分数增加10.
 

为了让其他角色能够接受到打中的命令、播放声音,还需要使用广播消息。对方接收到广播消息后,采取一定的动作。
 

 

少儿编程Scratch第四讲:射击游戏的制作,克隆的奥秘
宇宙飞船移动,打中加分。
 

 

少儿编程Scratch第四讲:射击游戏的制作,克隆的奥秘
子弹:克隆,发射前移到飞船上。
 

制作步骤

 

第一步:飞龙。
1.    加入飞龙角色
2.    设置开始事件
3.    直接重复执行,无限循环
4.    每一次循环都克隆一个飞龙,因此循环里面可以增加等待2秒。如果等待时间过短,飞龙就会很多,难度就会增加。如果克隆体过多,会导致系统性能变慢。
5.    从屏幕上方往下方飞行,因此Y直接固定为180,即顶部。然后X位置在-240和240中随机选择一个数字。
6.    然后随机设定一个方向,135到255方向。
7.    然后即可以重复执行,每次移动3步。移动的步数越大,飞龙就飞得越快。
8.    判断:根据X和Y轴数值判断,如果飞龙飞出屏幕,则删除飞龙克隆体。
9.    判断:如果碰到子弹,则删除克隆体,同时广播“打中了”。
10.  如果碰到宇宙飞船,则删除克隆体,同时广播“游戏结束”
11.  一个循环以后,可以切换一次造型。这样飞龙就有飞舞的感觉了。
 

少儿编程Scratch第四讲:射击游戏的制作,克隆的奥秘
飞龙:克隆,碰到子弹就消失,出屏幕后也消失。
 

 

 

第二步:分值计算
12.  需要增加一个全局变量。放在宇宙飞船上。当收到“打中了”的消息时,该变量增加10.
 

后续改进

13.  后来,我们增加了一个球,即每次宇宙飞船会发出一个球和一个闪电,在球的发射中,改变造型,飞行过程中,球的颜色就不断变化。但似乎克隆体太多了,系统速度变慢,不够顺畅了。
 

14.  可以在游戏结束以后,更换背景,显示游戏结束的场景,播放游戏结束的声音。
 

相关知识

今天在白板上介绍了用到的一些控件。通过举例,理解每个控件的意义。
少儿编程Scratch第四讲:射击游戏的制作,克隆的奥秘
 

1.    角色:飞龙、飞船、闪电等
2.    舞台:这个有点复杂,要介绍清楚X轴和Y轴。最终提问,例如如果飞龙要往右移动,X和Y如何变化。往右上角、右下角、左上角、左下角等。
第一次结束Scratch时,联系了碰到边缘以后返回到原点,即设置X或Y的初始值。然后不停循环。
3.    运动:

a.    移动到X,Y;

b.    设定方向??度;0度朝上,90度朝右,180度,朝下,-90度,朝左。和时钟类似。

c.     移动到??对象上,例如子弹发射时,移动到宇宙飞船上。第二次的接球游戏中,我们让一块板跟随鼠标左右移动,用到了移动到鼠标的操作。

d.    将X坐标增加??,正为右移,负为左移

e.    将Y坐标增加??,正为上移,负为下移。

4.    外观

a.    显示

b.    隐藏

c.     将角色大小设定为??

5.    控制

a.    重复执行:无限制,一直执行

b.    重复执行??次,做完指定次数以后,就结束循环了。

c.     如果…那么…:我们举了好些例子,一个角色从左到有移动,到右边X》230,就不让继续移动,直接将X设定为-230,就能回到起点。

d.    如果…那么…, 否则

e.    克隆(自己、其他角色):克隆是非常重要的,就是复制一份出来,每一份都可以单独操作。

f.      克隆体启动时,例如往下飞行,往上飞行。

g.    当克隆体碰到边缘或其他角色时,可以删除本克隆体,广播消息。

 

分享地址:https://scratch.mit.edu/projects/196376484/
浏览器中需要Flash播放器。

原文始发于微信公众号( 艾博特 ):少儿编程Scratch第四讲:射击游戏的制作,克隆的奥秘|

少儿编程Scratch第三讲:宇宙大战.枪战游戏

小朋友这周的表现还算不错。周末多数时间都由我陪(bi)着(zhe)做课本上的数学题,后来还学了英语。任重道远啊,语数外都还得加强,还远不到自己就能取得好成绩的阶段。
 

上周说好这周要做一个发射炮弹的游戏。最后在周日晚上八点学习完英语以后才开始。
 

 

目的

目的:设置一艘宇宙飞船或其他角色,实现上下左右移动。每按一次空格键即发射一枚炮弹,同时播放声音,炮弹往屏幕上方飞,直到飞出屏幕。发射子弹、炸弹是很常见的游戏功能。
 

少儿编程Scratch第三讲:宇宙大战.枪战游戏
 

实现方式

宇宙飞船角色的上下左右移动是比较简单的。我们在接球运动中已经学过了。只需要不停循环,检测是否有按键按下。如果左箭头按下,X轴就减少10;如果右箭头按下,X轴就增加10;如果上箭头按下,Y轴就增加10;如果下箭头按下,Y轴就减少10。对于这个步骤,小孩表示理解。
 

这是我们第一次使用发射炮弹的功能。首先要找到一个炮弹的图,可以选择球类或者其他物品, 最后我们选择了一个闪电,但要将闪电转一下,让尖尖的头朝上。
 

Scratch提供了克隆角色的功能,这是一个强大的功能,就是克隆出另外一个副本出来。克隆体启动时,可以执行单独的脚本,即相当于一个子函数,控制这个炮弹克隆体。每按一次按钮,炮弹就克隆复制自己。然后炮弹往屏幕上放飞行就比较简单了,就是向上移动一定的位置,或者Y轴增加一定的距离。不停循环即可往上飞行。
 

逐步改进

 

制作程序的过程,是一个不断测试改进的过程。我们在制作过程中,发现了一些问题,并且逐步解决了。
 

1.    宇宙飞船的范围确定。 如果不设置范围,那么左右上下会移出屏幕。因此我们后来增加了一个判断,即只有在X轴大于-220时,才继续往左移动,否则就不往左移动了。Y轴类似。这样通过四个箭头的移动,保证宇宙飞船一直都不会超出屏幕,同时上方保留一定的空间。

2.    克隆体一直往上飞行,到顶部以后,炸弹会停留在那边,留下一个尾巴。我们增加了判断。如果碰到边缘,就“删除克隆体”,这样克隆体碰到边缘后就消失了。

3.    播放声音:每次发射炸弹后,系统会播放声音。播放声音不能直接在循环中做,因为那样会做完以后才能继续发射下一个炮弹,影响效果。因此广播一个消息,然后在消息中播放音乐。最后我们选择了一个敲打低音鼓的声音,这样发射炸弹以后,就发出类似爆炸的声音了。

 

制作步骤

 

第一步:飞船角色上下左右移动。
1.    加入宇宙飞船角色;选择星空背景。
2.    造型中,将飞船大小调小一点;设置飞船的中央点为中心。
3.    设置开始事件
4.    直接重复执行,无限循环
5.    加判断,然后使用侦测 “按键 左移键是否按下”,那么X坐标增加-11。即飞船向左边移动。
6.    后来我们增加了一个判断。如果X坐标大于-220,才将X坐标增加-11,否则就不增加。即到达左边框以后,飞船不会继续往左边移动,保持在屏幕范围内。
7.    向右,向下和向上,方法类似。

游戏做出来后,小小朋友要来玩。结果她一直都按住箭头,飞船会超出屏幕。为了解决这个问题,我们就增加了边框的判断。

 

少儿编程Scratch第三讲:宇宙大战.枪战游戏
 

少儿编程Scratch第三讲:宇宙大战.枪战游戏
–飞船:上下左右移动–
 

 

第二步:克隆炸弹
8.    加入闪电角色。
9.    造型中,将闪电调小一点;设置飞船的中央点为中心。然后转动了一下。
10.  设置开始事件
11.  直接重复执行,无限循环
12.  每个循环,都将子弹 “移动”到“飞船”。因为飞船是移动的,所以发射炸弹时,要从飞船位置上发射出来。
13.  增加如果那么的判断,检测空格按键是否被按下。
14.  如果空格键被按下,那么就克隆自己。(这里可以克隆其他角色-例如飞船)。
15.  然后设置:控制>克隆体启动时。执行这个克隆体的脚本。

a.    首先,外观>隐藏自己。 (开始的时候,我们是没有增加隐藏、显示的步骤的。这样炸弹就在飞船上面能够看见。)

b.    然后选择:运动>面向0°方向,即朝上。这里可以改变方向,例如向右发射炸弹等。(可以选择不同的方向,测试效果)

c.     然后外观>显示自己。

d.    重复执行;移动8步。炸弹即往上飞行。(可以改变移动的速度。)

e.    增加判断,如果碰到边缘,那么,删除克隆体。(如果不删除,就留一个尾巴在屏幕上方。)

16.  增加声音:

a.    克隆自己以后,广播消息1;

b.    当收到消息1时

1)演奏乐器设置为18-鼓

2)弹奏鼓声2, 长度为0.25节拍。(要使用广播,否则飞船发射炸弹就要等待声音播放,导致不连续。)

 

少儿编程Scratch第三讲:宇宙大战.枪战游戏
 

 

少儿编程Scratch第三讲:宇宙大战.枪战游戏
-炸弹:克隆自己、克隆后移动、广播播放声音。
 

 

后续改进

1.    打算在上方随机出现另外一个角色,例如鬼怪,鬼怪也可以克隆自己。鬼怪按照随机的方向自上往下运动。(角色随机从上往下运动,在上一球类发射的课程中已经学过)。如果鬼怪碰到子弹,鬼怪则消失,并且播放打中的音乐,最后播放一个炸弹爆炸的效果。
2.    增加计分器,每消灭一个鬼怪,就增加10分,这样可以进行游戏了。
 

分享地址:https://scratch.mit.edu/projects/196376484/
浏览器中需要Flash播放器。
 

这个游戏,并不是由小孩独自完成。是在家长指导下,由小孩点击操作完成。目的依然是培养兴趣,了解逻辑过程,了解要实现什么功能,使用什么控件,对控件如何操作。
 

原文始发于微信公众号( 艾博特 ):少儿编程Scratch第三讲:宇宙大战.枪战游戏|

少儿编程Scratch第二讲:奇妙的接球小游戏

 

上周末的Scratch初次尝试给小孩留下了深刻的印象。我们还是约定,如果这周好好表现,则周末可以做一个发射炮弹之类的小游戏。有了这个动力,小孩也就“乖”多了。早上起来,饭后玩了一会积木,然后我带着学习识拼音写汉字。完成了已经打印好的两页,几十个字还是有的。然后复习数学,把数学书上的一些练习做好。两个小时很快就过去了。中午吃过饭以后,小孩没有还没有午睡的习惯,那就开始Scratch。
 

今天的练习还是比较复杂的,所以依然不能独自完成这些任务。估计二三年级的学生能够独立完成。这次程序的主要目的是,通过手把手的脚本制作,实现一个简单的游戏,激发小孩对这个工具的兴趣。

目的

目的:找一个球、水果或物品,从屏幕顶部位置按照随机的方向落下;屏幕下方设置一块板,板可以跟随鼠标左右移动;如果球落下时碰到板,球即往上按照随机的角度反弹;球触碰到边框以后,折返,继续落下;玩家继续移动鼠标接球。如果没有接住,球则掉入下面的火坑,游戏结束。
https://scratch.mit.edu/projects/196363356/   最终效果可以参考这个网址。
 

少儿编程Scratch第二讲:奇妙的接球小游戏
 

实现方式

 

根据上次学习的技能,添加了一个球的角色,但后来并没有选择球,而是选择了橙子,然后选择一个按钮板,后选择了一根红线,球碰到红线游戏即结束。后来我在网上找了一个熊熊烈火的图,在红线下方加了烈火图。意思是球碰到红线了,掉入火坑中烧掉了,游戏结束了。
 

 

第一步:红线和烈火是固定的,最为简单,什么脚本都不需要。
第二步:设置角色按钮板的程序脚本:
1.    设置开始事件
2.    直接进入无限制循环
3.    “移动”到“鼠标”,这一个控件即可实现角色跟随鼠标移动;
4.    设置按钮板的Y轴固定位-95,即实现只能左右移动,不能上下移动
5.    运行测试。鼠标左右移动,按钮板也跟着左右移动
 

少儿编程Scratch第二讲:奇妙的接球小游戏
“移动到”是一个很重要的动作,可以移动到随机位置,即打地鼠一样随机出现,也可以跟随鼠标移动,还可以移动到其他角色的位置上。
 

第三步:设置角色橘子的脚本,这是最复杂的部分。当然可以先从简单开始,逐步加入复杂一些的功能。
1.    设置开始事件
2.    位置设置为舞台上放,所以选择了“移动到X:随机数,Y:180”,横轴选择从-240到240随机选择一个数。
3.    “面向XXX方向”:橘子开始运动前,需要确定运行的方向,可以在一定范围内让系统随机选择一个方向。XXX这里可以让系统随机选择一个某范围内的数字。
因此,我们使用了运算中的“在XX到XXX中随机选择一个数”,我们设置了135到255。
初始化就做好了,下面开始循环往前移动。
 

4.    然后进入无限制循环
5.    首先我们需要让橘子往前走,因此需要使用“移动5步”。通过修改每次移动的步数,可以实现橘子移动的速度,增加游戏的难度。经过测试,速度为10比较合适,速度为15-20,难度就大一些了。
6.    移动之前,我们就可以判断是否碰到了按钮板角色。因此我们需要增加一个“如果…那么…”的判断。 如果“碰到XX”,那么,就改变方向,这时候方向要朝上,所以选择在-65到65度角度上随机选择一个方向;然后继续往前移动。
7.    球在往上运动时,会碰到舞台边缘,执行“碰到边缘就反弹”的动作。
 

8.    如果不接住橘子,橘子将继续往下,直到碰到红线角色,游戏停止。所以这里需要增加一个判断,如果“碰到红线角色”,则说话“没接住,游戏结束啦!!”,这个提示话语停留1秒钟。
9.    移动50步,这样橘子,就从掉入下方火焰中了。
 

少儿编程Scratch第二讲:奇妙的接球小游戏

少儿编程Scratch第二讲:奇妙的接球小游戏

增加声音

后来我们增加了声音:

1.    在橘子碰到按钮板的时候,播放声音POP;
2.    在碰到红线游戏结束时,播放咚咚咚,可以选择演奏的乐器-钢琴、小提琴、鼓等,然后弹奏何类鼓声,持续多少节拍,中间可以添加几节拍的休止符,实现咚、咚、咚的效果。
后来我们增加了沙漠的背景图

后续改进

1.    增加计分器,没接住一次球,就增加1分,这样可以进行比赛了;
2.    设置游戏难易程度:大人、中学生、小学生、幼儿园小朋友(高中低),选择高中低以后,设置橘子移动的速度。
 

少儿编程Scratch第二讲:奇妙的接球小游戏
完整的图。
演示地址:
https://scratch.mit.edu/projects/196363356/
 

总结:
这些学习了不少内容:

  1. “移动到-鼠标、或者某个角色”上
  2. 随机产生某个范围内的数字;
  3. 设定角色运动的方向;
  4. 碰到边缘就反弹
  5. 播放声音POP
  6. 设置演奏器材为XXX
  7. 演奏某个音节、节拍

 

原文始发于微信公众号( 艾博特 ):少儿编程Scratch第二讲:奇妙的接球小游戏|

Scratch第一讲:Scratch完美的初体验

都说未来是人工智能、计算机程式控制的时代,如何让青少年接触计算机编程思想和技能,已经成为国家人才发展的重要战略之一。

 

Scratch是由美国麻省理工学院MIT设计开发的图形化少儿编程工具。通过图形控件,小孩可以在不编写任何代码的情况下实现很多程序功能。从初步体验来看,五六岁以上的小孩即可上手。Scratch使用了舞台、角色概念,内置的人物、动物、玩具等对小孩还是很有吸引力的。小孩可以当做游戏来玩。在小孩还不能独立完成程序人物的情况下,家长或老师可以指导小孩完成程序设计,做一个小动画,实现各种变化,通常来说,小孩的兴致还是很高的。学员无需下载Scratch软件,可以直接在MIT网站上使用scratch.mit.edu。可以存为本地文件,在本地Scratch软件中修改,也可以直接保存到MIT网上。我下载了一个2.0中文版的Scratch,控件的字体似乎不对,后来还是直接使用MIT网上的Scratch环境,这个网站支持中文,网页最下方可以选择语言-中文。

2018年,新年第一天上午,和六岁的小孩一起动手,完成了《雪地大战》,初步认识了Scratch的强大。虽然今天的练习还不能独立完成,但已经初步培养的编程的兴趣,所有的操作都是在家长指导下由小孩自己完成的,因为小孩把这个当做一个游戏来做。

首先介绍了这个软件能够做什么。然后直接在软件图库中选择了舞台背景,看了一遍系统提供的舞台背景以后,小孩选择了雪地雪山背景。有了背景以后,就可以添加角色。默认的角色是一个小猫咪,先把这个小猫咪删掉。因此需要了解鼠标的左右键,点击右键,能够将选中的角色删除。系统提供了动物、奇幻、字母、热恩无、物品、交通等角色分类。小孩看到这些角色图库,着实兴奋了一把,都像把他们放进来。

我们确定今天的主题是让某个角色飞起来。所以最后是选择了巫师,因为之前看过哈利波特的电影。计划是让巫师从舞台左下角飞到舞台右上角,达到右上角以后,回到左下角原点。后来有添加了螃蟹、蝙蝠、鬼怪。打算巫师是对角飞,螃蟹是在下方左右翻滚移动,鬼怪在中间左右平飞,蝙蝠在舞台中间自下而上飞,同时蝙蝠会逐渐变大。

先完成巫师的对角飞行。介绍舞台的X方向和Y反向。舞台的正中央是零点。如果要想让某个角色从左到右移动,那么横向的X是增加还是减少?答案是X++,比如一次加1或者一次加4,加的越多,就飞得越快。然后巫师还需要往上飞,因此Y方向要向上移动,即Y++。如果要往左飞,则X–,往下飞则Y–。舞台最右边是X=240,最左边是X=-240。舞台最上面是Y=180, 最下面是Y=-180。负数就是比零还小的数字。

有了这个认识以后,我们进入脚本区域。介绍第一个分类是“事件”。在事件中,我们添加了“当小绿旗子被点击”,就是开始按钮,然后执行一些操作。

1)因为默认的巫师图片比较大,所以每次开始时,我们都先设定巫师的大小为60。这样怎么操作?进入“外观”,里面有一个控件“将角色大小设定为XX”,XX空格中可以录入数字。将这个控件拉过来,把开始小旗子磁贴粘贴在一起。这和乐高的WEDO类似。就是几个控件依次放在一起。

2)要实现巫师往右飞,我们使用了“运动”中的控件“将X坐标增加XX”,我们设定了增加4.

3)要实现巫师往上飞,我们使用了“运动”中的控件“将Y坐标增加XX”,我们设定了增加3.

这时候已经可以开始运行了,但是每次点击运行,巫师只会飞一点点,需要不停点击,才能往右上角飞。

那如何让巫师连续的飞的?答案是使用循环。

4)循环属于“控制”,在“控制”分类中,选择重复执行这个框,将X,Y的两个控件都包括在内。

因为是重复无数次执行,因此我们实现了巫师对角飞行。但是问题又来了。巫师碰到右上角以后,就飞出去不动了,因为到底了。如何解决这个问题?

这时候我们讨论,每飞一次,我们就检查一下,如果X坐标大于240,我们就然巫师重新回到左下角。因此我们增加了一个判断。

5)判断还是属于“控制”,在控制中增加“如何…..那么”的判断。

6)判断有条件,条件属于“运算”,我们到“运算”中,拖一个“某某>某某”的判断控件到这个“如果…那么”上。

然后获取巫师的当前位置,这可以在“运动”中找到“X坐标”。判断条件是:

X坐标>240.

7)如果条件满足,我们就要让巫师回到原点,即X坐标等于-240,Y坐标等于-180。

运行,巫师就开始对角飞行,飞到右上角以后,又重新回到坐下角,不停的重复。

后来我们按照相同的方法,实现了旁边从左到右,里面增加了一个运动动作“右转XX度”。

鬼怪的动作我们选择了,从左到右,但更简单,没有使用判断,只是往右执行120次,X轴每次增加4,执行完毕以后,继续执行120次,但是每次增加-4,这样就实现了不停来回的移动。

对于蝙蝠,我们加上了大小变换。从下往上移动,还是使用判断,到达顶部以后回到底部。蝙蝠往上移动的时候,我们然大小逐渐变大,然后回到原点的时候,重新设置为开始时的大小。

我们是使用浏览器,在MIT网站上直接使用Scratch的,最后我们将项目保存在MIT网站中,同时保存一份到本地计算机桌面上。

小孩说要设计一个能发射炮弹的游戏。那我们下次,打算让一个飞机从左往右飞,然后飞行过程中能够向下扔炸弹。飞机是一个角色,炸弹是一个角色,关键是计算位置,要实现炸弹是从飞机上扔下来的。

要继续学习,就得好好吃饭,先做好作业。果然,有了这个期待,今天的娃还是很听话的。

总结今天学习的内容:

1.    舞台:会自己添加舞台背景了。

2.    角色:会自己添加角色了。

3.    事件:开始

4.    外观

a.    将角色大小设定为60

b.    将角色大小增加2

5.    运动

a.    将X坐标增加4

b.    将Y坐标增加3

c.     右转4度

d.    X坐标:读取X坐标的值

e.    移动到X=-240, Y=-180:回到左下角。

6.    控制

a.    重复执行:无限制,永远重复

b.    重复执行140次:每次X+2

c.     如果??那么??:如果X>240,就回到原位。

对于这些分类,第一次还是记不住的,后面希望每周花半天时间,通过练习,记忆,能够自行完成这些作业。其他时间,可以讲解各种设计、控件和基础知识。

Scratch第一讲:Scratch完美的初体验

黑板上第一讲,写了一些重点。小孩表示能够理解,能够回到,如果要往右飞,X应该增大,还是减小,Y应该增大还是减小。

Scratch第一讲:Scratch完美的初体验

Scratch编程环境。左上角是舞台,下面可以选择舞台背景图和角色。这里都直接使用图库中的图。右边是脚本和控件程序。

 

Scratch第一讲:Scratch完美的初体验

背景图库

 

Scratch第一讲:Scratch完美的初体验

分类角色:有奇幻、动物、人物、物品、交通等,对小孩还是很有吸引力的。

 

Scratch第一讲:Scratch完美的初体验

这是运算脚本,巫师飞行中,飞到右上角就返回到原点,所以这里使用了判断X>240.

 

Scratch第一讲:Scratch完美的初体验

脚本中的分类还是很好的,通过颜色即可看到归入在哪一类中。不过小孩要先知道某个控件在某一类中,才能找到,例如判断在控制中,判断条件在运算中,大小变化在外观中,XY左边变换,转动在运动中。

 

 

Scratch第一讲:Scratch完美的初体验

外观控件

 

 

Scratch第一讲:Scratch完美的初体验

鬼怪的的程序,从左到右,然后返回。

 

家有五六岁以上的小孩,都可以试试这个Scratch编程,可以当做游戏玩。

原文始发于微信公众号( 艾博特 ):Scratch第一讲:Scratch完美的初体验|