打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
scratch贪吃蛇教程

贪吃蛇,我估计大多数家长应该都玩过,小编曾经迷恋过这个游戏,那还是在诺基亚手机横行的时候,那是手机为数不多的几款游戏之一,今天我们来学习一下如何用scratch制作出这款贪吃蛇游戏.

贪吃蛇

首先看一下《贪吃蛇》的游戏界面和运行界面。

游戏界面

游戏运行动画

游戏素材&思路分析

游戏素材:

游戏背景(游戏运行界面、游戏结束界面)、苹果、贪吃蛇(蛇头、蛇身)、记录得分。

思路分析:

1、游戏开始后,舞台背景切换成游戏运行界面;当蛇头碰到舞台边缘或者蛇头碰到蛇身时,游戏结束,舞台背景切换成游戏结束界面。

2、苹果随机出现在游戏界面的任何位置,等待一段时间,如果未被贪吃蛇吃到,则自动消失并出现在下一随机位置,此时贪吃蛇的蛇身将因为未吃到苹果而被加长一定的长度;如果苹果被贪吃蛇吃到,则苹果停止等待自动消失并出现在下一个随机位置。

3、得分是记录玩家通过贪吃蛇吃到的苹果的数量,吃到一个苹果得1分,在每次游戏开始前,得分清零。

4、游戏开始后,贪吃蛇自动移动,方向键控制蛇头的方向,蛇身跟着蛇头的方向一起移动;蛇头每吃掉一个苹果,得分加1,蛇身加长一定的长度。

5、本游戏的重点是蛇身的增加和移动,在这里,我们把贪吃蛇拆分成蛇头和蛇身来设计,蛇头通过角色图片来设置,蛇身则通过绘图功能来实现。

6、蛇头每移动一次,通过画笔在当前位置(xy坐标)用蛇身的颜色描绘一次,这样,蛇身就比原来多了一块,要想使蛇身保持长度不变,那就应该在蛇尾的位置(xy坐标)用舞台的背景色再描绘一次,用舞台的背景色抹掉刚才蛇身的颜色,这样,蛇身就又减少了一块。贪吃蛇的移动最后就变成移动一次,蛇头用蛇身颜色画一块,蛇尾用舞台背景颜色画一块覆盖原来的颜色,连贯起来就有了移动的动画效果。

7、每移动一次,蛇头的绘画动作是一定要做的,至于蛇尾要不要做覆盖绘画,就要看蛇身长度了,只有在蛇头绘画完后的长度大于蛇身固有的长度时,才做一次覆盖绘画动作。

8、蛇头吃到苹果,贪吃蛇的蛇身长度增加1,蛇头在规定的时间内未吃到苹果,苹果自动消失,蛇身长度增加5。

实现思路&程序编写

1、编写游戏界面&游戏脚本

1)游戏的运行界面直接采用默认的白色背景即可。

2)游戏的结束界面通过绘制新背景来实现。

选中绘制新背景,新建游戏结束界面

绘制游戏结束界面

3)游戏开始后,设置舞台背景为游戏运行界面(背景1)。

设置游戏初始脚本

2、编写苹果角色&游戏脚本

1)默认加载的小猫角色本游戏用不到,在角色库中选择小猫点击鼠标右键,点击删除。

2)游戏中的苹果从角色库中选择(角色库-》分类-》全部-》Apple),缩小至游戏合适大小。

从角色库选取Apple角色

3)游戏开始后,苹果出现在游戏的随机位置,然后等待一定的时间,消失,然后再出现游戏的随机位置。。。。以此类推,重复执行。

之前我们讲过,游戏界面的x坐标是(-240到240)和y坐标是(-180到180),如果苹果出游戏界面的边缘,那贪吃蛇吃到苹果立马就等于碰到了边缘,游戏就结束了,所以苹果的随机位置可以调整在x坐标(-220到220)和y坐标(-160到160)之间产生。

当蛇头碰到苹果时,也会通知苹果不需要再等待,消失本次产生的苹果,再随机产生一个新苹果,那在这里产生苹果不直接创建,而是用消息的方式来产生。

创建并广播一个新消息:随机生成苹果

接收到随机生成苹果消息后,随机生成位置并显示

苹果随机出现运行动画效果

3、编写蛇头角色&游戏脚本

1)游戏中的蛇头造型我们从本地上传自定义图片。(造型不一定一样,自行下载图片)

上传蛇头造型

2)游戏开始后,蛇头默认在中心点(0,0)位置,蛇头朝向左方向,重复自动移动,按下方向键蛇头转向对应的方向。

蛇头自动移动,按下方向键运动脚本

3)蛇头每移动一次,通过画笔去绘画蛇身。

通过画笔描绘蛇身

蛇头绘制蛇身

4)上面我们讲过,蛇头只绘制蛇身,多余的蛇身需要蛇尾来覆盖绘画,需要告诉蛇尾蛇身的长度以及在哪个位置(x坐标,y坐标)进行覆盖绘画,这里我们用scratch的新概念链表来记录每次蛇头绘画的位置(x坐标,y坐标)。

链表就相当于一个容器,用来记录多个数据,放入链表中的第一个数据是离蛇头距离最远的,靠近蛇尾最近的,放入链表中的最后一个数据是离蛇头最近的,离蛇尾最远的,也就是说,蛇头每增加一个位置,蛇尾就要删除一个离它最近的位置,即链表的第一条数据。

新建变量蛇身长度,并设为10

存储蛇头每次移动的x坐标,y坐标

4、编写蛇尾角色&游戏脚本

1)游戏中的蛇尾角色只涉及到绘画操作,可以任意选择,在此从角色库中选择(角色库-》分类-》全部-》Ball),并缩小至合适大小。

从角色库选择蛇尾角色

2)游戏开始后,设置画笔的颜色为舞台的背景色(白色),画笔的大小比绘制蛇身的颜色的画笔大小略大(12),监控蛇头存储的x坐标(或y坐标)的数量是不是大于蛇身的长度,如果大于,则将存储的链表中离蛇尾最近的位置(链表的第一条数据)删除。

蛇尾删除多余的存储数据

贪吃蛇运动效果

5、编写完善脚本

1)新建得分变量,在舞台加载游戏运行界面是设定为0。

新建得分变量

游戏开始时,将得分清空为0

2)新增游戏结束消息,当蛇头碰到蛇身或者蛇头碰到边缘时,广播游戏结束消息,舞台收到消息,将游戏界面切换至结束界面。

判断蛇头是否碰到蛇身或者边缘

游戏界面切换至结束界面

3)如果苹果显示一直没碰到蛇头,自动消失,并将蛇身长度增加5。

蛇头未碰到苹果,蛇身长度增加5

4)当蛇头碰到苹果,蛇身长度增加1,得分增加1,播放吃苹果的声音,蛇头发送消息告诉苹果,可以将本次的苹果消失,再创建一个新苹果了。

蛇头碰到苹果的脚本

苹果接收到消息,重新生成一个新苹果

至此,贪吃蛇的思路分析和程序编写都已完成,大家动手试一试吧!

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Java案例-贪吃蛇小游戏
C++编写贪吃蛇小游戏
使用Opencv和Python构建贪吃蛇小游戏
贪吃蛇游戏源代码(C++)
不到 150 行代码写一个 Python 版的贪吃蛇
C语言实现贪吃蛇
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服