Scratch第六讲:打地鼠的游戏

网友投稿 2018-08-09 11:03

首先介绍一个关键概念:变量

变量是什么,变量是一段有名字的连续存储空间。在源代码中通过定义变量来申请并命名这样的存储空间,并通过变量的名字来使用这段存储空间。 变量是程序中数据的临时存放场所。在代码中可以只使用一个变量,也可以使用多个变量,变量中可以存放单词、数值、日期以及属性。

算了,还是说人话吧:

比如有人问你:小妹妹,你今年多大啦?你会回答:8岁啦!然后过了一年再有人问你多大啦,你会回答:9岁啦!你看,你的年龄就是一个变量,随着时间是会增加的。

如果有人问你生日是哪天呀?你说:8月1日!过了几年还有人问你生日呢?你还是会说:8月1日。这就是常量,不会随着时间变化的。

程序分析:

打地鼠的游戏里都有什么角色呀? 有洞!有地鼠!有锤子!(角色)

那这些角色都在干什么呀?地鼠从洞里面冒出来!锤子去砸地鼠!(事件)

你怎么知道地鼠从哪里冒出来呀?我也不知道!随机的!(关键算法)

https://cdn.china-scratch.com/Editor/2020-09-27/5f701b4a776d5.gif

既然分析清楚啦,那就开工吧!

创建角色

首先,新建背景和角色,从背景库/角色库中分别选择森林和地鼠、锤子

1.角色:洞
https://cdn.china-scratch.com/timg/180811/1102595Q0-1.jpg

绘制一个新角色:洞,其实就是一个自己画的椭圆,然后用黑色填充,没啥特殊的。


基本概念:图层

https://cdn.china-scratch.com/timg/180811/11025aC1-2.jpg

似乎“洞”与“地鼠”是可以相互覆盖,没错,这就是图层的概念,学过PS就很容易明白,图,是一层一层叠加的。在scratch里面,只要鼠标左键点击并拖动,该角色就会自动跑到最上层。这里,地鼠当然在最上面,所以对于地鼠,在程序一开始咱们就来一个“移至最上层”。

https://cdn.china-scratch.com/timg/180811/11025924T-3.jpg

2.角色:地鼠

为了效果,咱们新建一个地鼠被打之后的造型

https://cdn.china-scratch.com/timg/180811/1103005a5-4.jpg

于是,初始化程序就应该是这样

https://cdn.china-scratch.com/timg/180811/1103005308-5.jpg


下面介绍一个特效“虚像”

https://cdn.china-scratch.com/timg/180811/1103001317-6.jpg

https://cdn.china-scratch.com/timg/180811/1103003N6-7.jpg

https://cdn.china-scratch.com/timg/180811/1103005B5-8.jpg

https://cdn.china-scratch.com/timg/180811/11030033a-9.jpg

“虚像”特效真是个好东西,有了它,我们就可以做出下面这个效果

https://cdn.china-scratch.com/timg/180811/1103005X3-10.gif

具体程序如下

https://cdn.china-scratch.com/timg/180811/11030022C-11.jpg

首先讲“虚像”特效设置为100,也就是看不见了,程序“2“是让地鼠边往上跑,边显示出来。那为啥还会出现程序“1“呢?这是因为我希望地鼠在最开始那一段不显示,等跑一段才慢慢的边显示边上升

大家可以自己试试看:如果没有程序“1“会是怎样?或者把程序“2“的Y坐标增加数字调大会是怎样的效果?


https://cdn.china-scratch.com/timg/180811/110300E05-12.jpg

需要注意的是:洞与地鼠的位置要合适,这里大家可以自己调整。接下来,看看5只地鼠怎样随机出现呢?

https://cdn.china-scratch.com/timg/180811/11030114Z-13.gif

一想到随机,我们当然想到了“随机数“

https://cdn.china-scratch.com/timg/180811/1103011023-14.jpg

我们先设置一个变量“哪只地鼠”,然后在舞台里编程,每隔1秒钟,对“哪只地鼠”产生一个1-5的随机数。然后我们就可以根据这个变量的随机数值去让哪只地鼠出来咯!在复制其他地鼠的时候记得改坐标

https://cdn.china-scratch.com/timg/180811/1103016444-15.jpg

这里需要介绍一个广播的东西,广播是一个将不同角色联系在一起的工具

比如上面这个程序是在“舞台”里做的,但是我们可以让地鼠接受到广播

https://cdn.china-scratch.com/timg/180811/1103015591-16.jpg

你看,广播哪一只就是哪一只出来,而最后这个等待只是为了调整游戏节奏

3.角色:锤子

https://cdn.china-scratch.com/timg/180811/11030154H-17.jpg

咱们首先需要做的就是让锤子跟随鼠标走,这个其实很简单

https://cdn.china-scratch.com/timg/180811/1103014335-18.jpg

你要得分,当然需要设置“得分变量”,同时,需要在最开始将得分设置为“0”

https://cdn.china-scratch.com/timg/180811/110301M29-19.gif

接下来就是锤子“打”,你仔细观察就会发现,“打”这个动作是X坐标不变、Y坐标往下(变小),程序如图所示

https://cdn.china-scratch.com/timg/180811/1103016305-20.jpg

这里对坐标的控制还是比较有技巧,至于Y坐标减多少,大家可以自己调试

这个时候,“打”的表面功夫算是完成了。那实际上,咱们需要打到地鼠上,让地鼠“四分五裂”,还要得分。这里需要提醒一下的是,必须是“打”这个动作发出后,如果碰到了,才会得分。程序如图所示

https://cdn.china-scratch.com/timg/180811/1103012T1-21.jpg

很显然,只要碰到5只地鼠的任意一只,都得加分,所以是“或”的关系。计算机逻辑运算的基础运算“或,且,非”我就不多说了

至于为啥得分以后要等待0.2秒呢?这是为了避免打一下得很多分的囧境。

得分还不行,还得让地鼠“烂”

https://cdn.china-scratch.com/timg/180811/110301H44-22.gif

我们又要用到“广播”,这里我们新建一个广播“地鼠烂”

https://cdn.china-scratch.com/timg/180811/1103014F7-23.jpg

然后,在地鼠的脚本里加上如上图所示的程序就可以了

有人说,不对啊,你这一加,意味着只要一只地鼠被打了,所有地鼠都会变“烂”

https://cdn.china-scratch.com/timg/180811/110301A54-24.jpg

你要知道,只有随机数对应的地鼠会显示出来,其他的都是隐藏了,所以烂又怎样,反正看不见

最后,你加点音乐,以及地鼠被打之后发出点惨叫,就完成啦!


下面是这个案例的重要角色的源代码

舞台

https://cdn.china-scratch.com/timg/180811/110302A57-25.jpg

地鼠

https://cdn.china-scratch.com/timg/180811/1103025550-26.jpg

锤子

https://cdn.china-scratch.com/timg/180811/1103022019-27.jpg

好了,这还是挺好玩的游戏,又简单。通过做这个游戏还能学到很多关键的概念。除了概念,还有一些提升游戏效果的一些细节处理,其实游戏做的好坏,细节很重要,小朋友可以多花一些时间,用你所学到的各种技巧来提升游戏效果,让游戏显得更加逼真,好玩!

--end--

声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除:freemanzk@qq.com