首页 > scratch> 详细内容
我教“孩子”在10小时内精通Scratch-第4小时:自编“打地鼠”游戏
日期:2019-05-03 

我之前在“第2小时”和“第3小时”已经教会了女儿如何用Scratch画画和把键盘变钢琴。这节课我想教她用Scratch做一个小游戏:大家熟知的“打地鼠”。

先看看效果。

打地鼠游戏Demo(有配音)

这次我依然只能和女儿视频教学!T.T

视频一接通,我就看到我的小公主在那卖萌了。

女儿卖萌

我就问她,“乖宝宝,如果你房间里有老鼠,你怎么办啊?”

她撰紧拳头,装作怒气冲冲地说,“打它!”

我又问,“那你想不想先演练演练?”

她露出疑惑的表情。

我连忙解释,“今天教你做‘打地鼠’游戏,先培养你打地鼠的技能吧~”

她立马变花痴样,“好啊!我这就打开Scratch!”

等她准备好了,我跟她说,“先给这个项目起个名字,比如‘打地鼠’。这个游戏分三部分,分别是舞台,锤子,地鼠。我们一部分一部分地做。”

1. 舞台

“我们先说舞台,先把舞台设置成你的卧室。点击‘舞台’,再点‘新建背景’,看到背景库第一排的‘bedroom1’没?”

“看到啦,”她回复我,“我知道,点击它,再确定就可以啦!”

‘舞台’->‘新建背景’->背景库第一排的‘bedroom1’

“然后呢?”我问她。

“把小猫咪删掉,把白色背景也删掉。我是不是很机智?”

删掉小猫咪、白色背景

我连忙夸她,“非常正确!其实把它们隐藏起来也可以,编程没有标准答案。”

2. 锤子

“接下来我们设计‘锤子’这部分。”

她问我,“锤子怎么弄?”

我调侃她,“你这么聪明,自己想想!”

她想了一会儿,开始跟我撒娇,“想不出来来,你告诉我嘛!”

女儿撒娇

我心都快化了,赶紧告诉她,“点击‘新建角色’里的‘从本地文件中上传文件’,选择‘锤子’,再点击‘打开’就把从网上搜到的锤子图片导入到舞台上了!”

“为了‘打地鼠’,要点击鼠标,然后锤子捶下来,这需要旋转锤子。”

“为了营造这种效果,要点击锤子,再点击造型,点击新建造型里的绘制新造型,就是那个画笔,然后把上图的锤子拖到新造型里,再旋转一下就可以啦!”

“把竖着的锤子名字改成‘造型1’,把斜着的锤子名字改成‘造型2’。你看看效果。”

“然后我们写代码吧,为了用鼠标控制锤子,要‘移到鼠标指针’块;为了一直控制,需要‘重复执行’。”

代码:用鼠标控制锤子

“先将锤子切换到‘造型1’,如果点击鼠标,就切换到‘造型2’,需要用到‘如果那么’块和‘将造型切换为造型1’块。为了能看到效果,还需要‘等待1秒’块。”

代码:点击鼠标,切换锤子造型

“你可以看看效果啦!”

她惊呼,“我可以控制锤子啦!哈哈!”然后把效果图给我看:

鼠标控制锤子,点击鼠标捶下锤子

我问她,“你觉不觉得锤子好大,而且锤子捶下去的时间太长?”

她告诉我,“是哒!那我改等待时间为0.2秒,并且‘把角色的大小设定为50’就可以啦!哈哈!”

我夸她,“你已经学会用代码解决问题啦!”

代码:改等待时间、角色大小
锤子变小

3. 地鼠

我接着指导她,“接下来,我们解决老鼠这一部分。”

她立马回复,“我知道,为了导入老鼠造型,点击‘新建角色’,再点击‘动物’,找到老鼠‘Mouse1’,再点击确定就可以了。”

‘新建角色’->‘动物’->‘Mouse1’

我问她,“那接下来呢?”

她开始自主思考,“我试试。打地鼠游戏里的地鼠有时显示,有时隐藏起来。这需要这样做:”

代码:显示,隐藏地鼠

弄好了,她把电脑给我看,效果是这样的:

地鼠显示,隐藏

我提醒她,“如果地鼠一直这样,游戏也没啥意思。你可以随机设置地鼠出现的位置,随机设置‘显示’和‘隐藏’的时间,只需要用到‘运算符’里的‘在1到10间随机选一个数’这个块。”

她恍然大悟,“我试试!”

我提醒她,“你可以改里面的数字哦。”

下面是她给我的代码:

代码:地鼠随机出现、显示、隐藏

我肯定她,“非常正确!那接下来怎么让锤子打地鼠呢?”

她表示不会。

我就教她,“这里的关键是,如果地鼠碰到锤子,并且点击鼠标捶下锤子,那么地鼠就被打中了。这里要用到‘运算符’里的'与'这个块,这个块表示‘如果左右两个六边形里的条件同时满足,就执行接下来的操作’。”代码如下:

代码:地鼠碰到锤子,并且点击鼠标

“如果地鼠‘碰到锤子’且‘下移鼠标’,就可以做一些操作啦!”

“比如‘播放声音’,地鼠被打扁后像素化了,‘广播打中’的消息,然后恢复到原貌等等。”代码如下:

代码:打中地鼠后的操作

她非常兴奋,“哈哈!我已经开始打地鼠啦!这是我自己做的第一个游戏!”

初步效果

我就打趣她,“是啊,你的第一次给我了!”

她装作横眉冷对,“哼!去死!”

哈哈!

4. 计数

我接着问她,“想不想知道怎么计算你打中多少只地鼠啊?”

她又开始新的疑问,“这个怎么弄啊?”

我教她,“你点击脚本里的‘数据’,‘新建变量’。因为可能不止一个地鼠,所以要选择‘要适用于所有角色’。再起个变量名,比如‘几只老鼠’。”

新建变量

“然后点击锤子角色,将‘将几只老鼠设定为0’放在‘将绿旗被点击’下面。同时,如果打中地鼠,地鼠就会发出“打中”消息,这里‘当接收到打中’,就‘将几只老鼠增加1’,并且告诉我们,用‘说打中地鼠!2秒’”

改变变量

“你还可以改变要说的内容,可以用‘运算符’里的‘连接’块,你想想怎么连接才能说出‘打中‘变量’只地鼠’?”

她摸索了一会儿,给我看了她的代码:

改变说话内容

这是她给我看的效果,非常不错!

打地鼠

我接着让她多弄几只地鼠,这是她给我的代码:

复制角色

我让她修改第2、3、4只地鼠的活动范围如下:

第2只地鼠的活动范围


第3只地鼠的活动范围


第4只地鼠的活动范围

到这里,所有的代码都弄好啦!

哈哈!就等着测试啦!

她很紧张,“会不会出什么错误啊!”

我安慰她,“不用怕,点击绿旗吧!”

她点击了,然后我就听到了她喊,“耶!我成功啦!好好玩!哈哈哈哈!”

这是她给我看的效果!

打地鼠!

“哈哈!乖女儿真厉害!”

自己做的菜最好吃,自己做的游戏最好玩!

项目地址: https://scratch.mit.edu/projects/114887416/


我很有成就感!在这1小时里,我教会她做了自己的第一个游戏!

这里面,我们新学习了设置‘随机’数让地鼠随机出现,运用‘变量’计数计算打中了几只地鼠,还学会如何运用‘连接’让锤子说出它的心里话!希望大家教自己的孩子一起做,相信我,他们会很有成就感而喜欢上编程的!

下一次课,我想教女儿如何让角色和我们互动聊天,做个简易版的Siri。



作者:君君玩科技
链接:https://www.jianshu.com/p/307d76b26abf
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。