最新消息:380元/半年,推荐全网最具性价比的一站式编程学习平台码丁实验室

Scratch创意编程(六):抓小偷

Scratch 少儿编程 11945浏览 0评论
Scratch创意编程01

友情提示:380元/半年,儿童学编程,就上码丁实验室

不知道大家有没有这样的经历?在学校电脑机房上机时,电脑不能上网,而电脑里除了扫雷和纸牌外只有一个游戏,那么这个游戏就会变成班上最流行的游戏。这次介绍给大家的就是当时风靡全班的游戏——猫狗大战

 

游戏链接:猫狗大战

游戏中有一只小狗和一只小猫,头顶是各自的血条,玩家控制小狗,抛出骨头,砸向另一边的小猫;电脑控制小猫,抛出鱼骨,砸向小狗。谁的血条先被消耗完,谁就输了。游戏方式为回合制。

为了不被动物保护人士殴打,这次我们把游戏改成抓小偷的游戏。

Scratch创意编程(六):抓小偷

点击链接试玩:抓小偷游戏(需PC端打开)

 

 因为上周录制的视频用了如上图的舞台背景,导致GIF图片过大,无法上传到微信公众号上,导致上周本系列教程停更,为了阅读体验,以下教程只好删除舞台背景。

游戏制作步骤:

  1. 登入好好搭搭网站,打开“创作模板——Scratch”

  2. 这次终于不用删除可怜的小猫了,这次我们选他为主角

Scratch创意编程(六):抓小偷

3.编写小猫脚本1——初始化小猫的大小和位置

Scratch创意编程(六):抓小偷

Scratch创意编程(六):抓小偷

4.编写小猫脚本2——鼠标选中小猫并长按实现视觉反馈

   鼠标左键按住小猫,隐含了两个条件,即鼠标的坐标在小猫角色图片的坐标范围内,和鼠标左键被按下。

Scratch创意编程(六):抓小偷

鼠标移到舞台区域内,右下角会显示鼠标此时的坐标值。

将鼠标移到小猫角色的坐标范围内,记录X坐标的最小值和最大值、Y坐标的最小值和最大值。本例中小猫的X坐标范围为[-220,-167]、Y坐标范围为[-125,-65]。脚本如下:

Scratch创意编程(六):抓小偷

5.新建角色——小球

新建一个用于击打小偷的小球。

6.编写小球脚本1——初始化小球的大小和位置

Scratch创意编程(六):抓小偷

Scratch创意编程(六):抓小偷

7.新建角色——蓄力框

蓄力框需要绘制。

Scratch创意编程(六):抓小偷

8.新建角色——蓄力条

蓄力条同样需要绘制。

Scratch创意编程(六):抓小偷

9.编写蓄力框脚本1——初始化蓄力框位置

应该固定,不能乱跑,所以需要固定蓄力框的位置

Scratch创意编程(六):抓小偷

10.编写蓄力条脚本1——初始化蓄力条位置

蓄力条的位置和蓄力框的位置一样,需要初始化

Scratch创意编程(六):抓小偷

11.编写蓄力框脚本2——按住小猫时显示,松开鼠标隐藏

猫狗大战游戏中的蓄力框和蓄力条是按住小狗时才出现的,松开便消失了,所以本例中也实现这样的效果。

按住小猫的判定与小猫角色的脚本相似,为了节省工作量,可以将脚本复制过来。

Scratch创意编程(六):抓小偷

在小猫脚本的基础上做个修改,实现按住小猫蓄力框出现,松开鼠标左键蓄力框消失。

Scratch创意编程(六):抓小偷

Scratch创意编程(六):抓小偷

12.编写蓄力条脚本2——蓄力条变长效果

蓄力条的变长需要用到“画笔”相关指令。

“画笔”类目中的“图章”指令,可以让角色的图样印拓在舞台上。

使用“图章”指令和“移动”指令,便可实现蓄力条变长的效果。

“清空”指令可以将所有留在舞台上的图章清除。

Scratch创意编程(六):抓小偷

Scratch创意编程(六):抓小偷

从演示效果看出以上程序还不够,蓄力条应该和蓄力框一样在按住小猫时出现,其他时候消失,同时,每次按住小猫开始时,位置应该从蓄力框最左侧开始变长。所以脚本应为:

Scratch创意编程(六):抓小偷

Scratch创意编程(六):抓小偷

13.编写小球脚本2——小球的抛出运动

小球被抛出的轨迹应该是抛物线,但是抛物线的方程过于复杂,大家可以尝试的去挑战。本例中用圆弧代替。

现实中,绘制圆形最简单的方法是用圆规绘制,首选确定圆的半径,再选取圆心,最后转动圆规,绘制圆形。

Scratch创意编程(六):抓小偷

用程序绘制圆形,最简单的方法是用正多边形逼近的方式绘制圆形。

为了讲解如何绘制一个圆形,使用空的模板,插入一个角色“Pencil”,配合“落笔”指令,绘制多边形。

先绘制我们比较熟悉的正四边形:

Scratch创意编程(六):抓小偷

Scratch创意编程(六):抓小偷

绘制正十边形

Scratch创意编程(六):抓小偷

Scratch创意编程(六):抓小偷

正十边形是不是比正四边形更像一个圆了?如果绘制正30边形呢?

Scratch创意编程(六):抓小偷

为了画笔轨迹不超出舞台范围,边长改为30

Scratch创意编程(六):抓小偷

这个正30边形是不是已经很像一个圆了?

会到小球的脚本,小球从小猫手中抛出。首先有一个初始角度,之后每移动几步,角度向右转动几度,这样便可以形成一个圆弧的轨迹。

Scratch创意编程(六):抓小偷

Scratch创意编程(六):抓小偷

14.编写小球脚本3——加入力量值变量

游戏中的轨迹是与蓄力的多少相关的,所以需要增加一个“力量”变量。

(1) 力量值可以直接作为抛出轨迹正多边形的变长;

(2) 角度值随力量值变化,即当力量值为100时,角度值为20;当力量值为0时,角度值为80。所以角度值=80-(60/100)×力量值。

Scratch创意编程(六):抓小偷

Scratch创意编程(六):抓小偷

Scratch创意编程(六):抓小偷

Scratch创意编程(六):抓小偷

15.新建小偷角色

角色库中没有合适的小偷形象,感谢我们的美女画师为本游戏原创设计的小偷角色。

Scratch创意编程(六):抓小偷

得意的小偷 

Scratch创意编程(六):抓小偷

被发现的小偷  

Scratch创意编程(六):抓小偷

扑街的小偷

 

据说小偷的形象是以笔者为原型的,大家自己脑补,哈哈~

16.编写小偷脚本1——初始化小偷大小位置和造型

将小偷角色调整到合适的大小,移动到舞台右侧街道上,造型为“得意的小偷”。

Scratch创意编程(六):抓小偷

17.编写小球脚本4——广播消息

小球如果击中小偷,小偷角色是可以用“碰到…”模块判断的,但是小球如果没有击中小偷,是因为没有击球还是击球之后没打中,就不能用“碰到…”模块来判断了。

Scratch为不同角色之间的信息传递提供了“广播”的相关模块,位于“事件”类目中。

Scratch创意编程(六):抓小偷

“广播(信息)”指令运行一次,便发出一次广播,其他角色脚本中由“当接收到(广播信息)”事件触发的脚本便运行一次。

所以,当小球碰到小偷时,发出一次“击中”广播;当小球碰到舞台边缘时,发出一次“没击中”广播。小球的脚本变为:

Scratch创意编程(六):抓小偷

Scratch创意编程(六):抓小偷

18.编写小偷脚本2——接收广播消息

如果小偷被击中,造型切换为“被发现的小偷”,说“哎呀”1秒钟,之后造型切换回“小偷”。如果小偷没被击中,造型不变,说“没打中!”1秒钟。

Scratch创意编程(六):抓小偷

Scratch创意编程(六):抓小偷

Scratch创意编程(六):抓小偷

19.编写小偷脚本3——血量设定

反复这样打中和没打中,着实无趣,为了让美女画师画的“扑街的小偷”不浪费,必须要让小偷扑街。

本游戏设置小偷有3滴血,被打中一次血量减一,当血量为0时扑街。则小偷被球击中部分的脚本变为:

Scratch创意编程(六):抓小偷

Scratch创意编程(六):抓小偷

20.编写小偷脚本4——随机移动

没有小偷会傻到一直站着不动挨打。所以每击中一次,随机的换个位置,这游戏会变的更有趣。

让小偷不论击中还是没被击中,都换一个地方,让其在舞台右侧街道移动。

Scratch创意编程(六):抓小偷

21.编写小偷脚本5——小偷逃跑

游戏编到现在,游戏的结局是一定会胜利的,小偷根本没有赢的可能。

那么设定一个变量——击球次数,当击球次数超过5时,小偷逃跑成功!则没击中部分的脚本变为:

Scratch创意编程(六):抓小偷

击中部分的脚本中也要添加一条“变量 击球次数 的值增加1”的指令。

Scratch创意编程(六):抓小偷

到此,本游戏基本框架编写完毕。

大家可以试着在本游戏的基础上去做进一步的挑战,如小偷角色的大小按透视原理近大远小、小球抛出按真正的抛物线轨迹运动而不是圆弧轨迹运动,等等。

欢迎在留言区回复您宝贵的意见。提出您的创意,我们帮你实现!

您必须 登录 才能发表评论!