新浪博客

Scratch游戏编程课程贪吃蛇

2020-03-30 23:29阅读:
Scratch 游戏编程课程
——贪吃蛇
【游戏描述】贪吃蛇是一款经典的游戏 ,现在已经演绎出了很多的版本 ,相信很多朋友已经玩过。玩家控制一条蛇吃掉出现的食物,吃掉后,身体会变长。如果碰到墙壁或自身,游戏结束。
【游戏设计思路】
1.蛇自身一直移动,我们只需通过键盘上的方向键来控制蛇头方向;蛇身跟随。
2.通过克隆及随机数使目标食物(这里用蝙蝠)不断随机出现在舞台上;
3.通过建立变量来计算分数,同时记录贪吃蛇的移动速度;
4.贪吃蛇吃到目标食物,则分数增加,同时速度增加;
5.贪吃蛇吃到的食物越多,则身体越长。
6.碰到墙壁(四周边缘),生命值减1。生命值为0,游戏结束。
7.增加石头障碍,碰到后,分数减少。分数为负分,游戏结束。
8. 碰到自身,游戏结束。
【编程实现】
【角色准备】游戏设置了这些角色,蛇头和蛇身都是用色块(20*20)。蝙蝠来自于自带的素材库,其他搜索自网络。有些需要自行抠图。素材制作不在赘述。
这里还有个“探测”的小方块,之后会说明他的作用。


【编程开始】
1.【黑蝙蝠】角色bat2,作为贪吃蛇的食物,随机出现在屏幕上,碰到蛇,消失,1~3秒后,随机再出现。这里还有一个循环,切换造型,是让蝙蝠飞起来(扇动翅膀)。


2.【红蝙蝠】角色bat3,增加了一个贪吃蛇的食物,这个不会一直出现在屏幕,出现后,3秒消失。在等待10秒,再出现。代码很好理解。

3.【石头】有四个造型,可以实现动画效果。在Scratch中实现效果,大都是通过改变造型来实现。
这个也好理解,石头是个障碍物,蛇头碰到后,减少分数,切换造型,看起来石头碎了。同样也是随机出现。
4.【贪吃蛇图标】角色tanchishe1,
5.【失败】角色fail,当贪吃蛇碰到墙壁(四周边缘)后,生命减1,并显示。

6.【游戏结束】角色gameover。游戏结束时显示。

7.【数字】主要增加一个倒计时,在开始或失败时,倒计时,给玩家一个准备时间
,因为贪吃蛇游戏开始就会运动。

8【蛇头】这是重点。蛇头要不断的运动,而且受方向键控制。

这是游戏的初始化内容,放哪都可以。

接上页

这段代码比较长,我们来理解一下。首先删除了两个链表中数据。这两个链表是干什么用的?贪吃蛇最难理解的蛇身要跟随蛇头运动。我这里用链表来记录蛇头的运动产生x坐标和y坐标,以便蛇身重复蛇头的运动位置。
通过调整等待时间,来改变贪吃蛇 的速度。
每碰到蝙蝠一次,得分,速度都会改变。最重要的使蛇身变长。增加了一个计数的私有变量。为了区分加了下划线。碰到蝙蝠,计数加一。
定义移动并记录的积木块。
将蛇头的坐标加入到链表。因为链表是一维的,所以用两个分别记录。
这里,我的想法是:蛇身几个,链表中就记录几个位置,多余的删除。

9【蛇身】第一个蛇身不断移动到链表中位置,依次位置递减。
这里多了探测检测。蛇身碰到了探测,意味碰到了蛇头。游戏结束。
10.【探测】 将它的虚像设为100,意思是运行时它在舞台上看不到了,但存在。这和隐藏不同。隐藏,不在舞台上了。
跟随蛇头,位置一直在蛇头上方位置,如上图。它的作用代替蛇头去碰撞,因为蛇身产生使会碰到蛇头,如果再用蛇头去检测碰撞到蛇身时,会产生错误。大家可以尝试。看看将碰到探测,改成碰到蛇头,会怎样?

这样一款简单的贪吃蛇就编写完成。快试试效果吧。
后期的想法:
1.将蝙蝠的数量增加。
2.增加一个空间洞,蛇可以从洞的一端,直接穿到洞的另一端。
有兴趣的童鞋,快去实现吧。
原文链接:点击获得更多内容

我的更多文章

下载客户端阅读体验更佳

APP专享