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

【EV3进阶】制作小游戏:让贪吃蛇自己“动”起来。(九)

乐高 少儿编程 4674浏览 0评论
简易贪吃蛇

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

昨天忙过头了,来不及发文。抱歉,久等。

闲话就不多说了,今天我们来完成“自动移动”的部分

正常的贪吃蛇游戏,是自动产生移动的,并且,每吃掉一个苹果,移动速度就会加快一点。

上面这句话,其实就是我们的明确需求。


 

那么如何让蛇产生自动移动呢?

首先来看下操作的体验是如何的:

按键(像是控制了一个方向)——蛇根据朝着这个方向持续移动。

我们要从技术角度去理解这个问题。

条件一:

按键这个动作,其实是产生了一个数据。所以我们要改变的,是一个数据的“用法”。

条件二:

而蛇头的坐标,其实是一组数据。每一次蛇头的移动,都是这组数据产生了改变。

结合上面两点,其实自动移动,就可以理解为:

用按键产生的数据变化,通过一种计算,改变蛇头坐标的移动计算方式,并自动循环。

这样是不是就可以理解,之前我们当时为什么要独立出movex和movey两个变量了?

【EV3进阶】制作小游戏:让贪吃蛇自己“动”起来。(九)

没错,这两个变量代表的就是每个按键所对应的“移动方式”

当按,

上,x轴不变,y轴减10;

下,x轴不变,y轴加10;

左,x轴减10,y轴不变;

右,x轴加10,y轴不变。

而这个移动方式的改变,直接影响了我们的蛇头坐标改变方式。

所以一旦按了某个按钮,改变了movex和movey后,只要循环这个程序,就可以做到自动移动啦!


 

但这里还有一个关键部分需要改动,就是按键控制的本身

我们会发现,现在的程序里面,按键是这个循环的触发条件。

【EV3进阶】制作小游戏:让贪吃蛇自己“动”起来。(九)

而我们需要的,是蛇每吃一个苹果,速度加快一次。

所谓速度,其实就是时间,或者理解为蛇的数据刷新一次的所需时间。

一秒循环一次,肯定比两秒循环一次的移动速度快。

另外一点就是,movex和movey是一个实时变化的数据(只要你按了按键),它本身是不影响蛇的持续移动的。

所以需要在程序的“创建部分”加入新的变量speed,然后同时设定出movex和movey的初始值(即蛇的初始移动方向)。

【EV3进阶】制作小游戏:让贪吃蛇自己“动”起来。(九)

先把按键部分,移除原来的主程序,让其独立成为一个实时控制movex和movey的部分。与主程序并列自主循环。

【EV3进阶】制作小游戏:让贪吃蛇自己“动”起来。(九)

在计算apple数据的部分后,加上一个计算speed的部分,并设定其最小值。

【EV3进阶】制作小游戏:让贪吃蛇自己“动”起来。(九)

最后,在蛇数据的循环里,加入由speed值控制的循环等待时间,作为数据循环刷新的条件。

【EV3进阶】制作小游戏:让贪吃蛇自己“动”起来。(九)

这样一来,蛇就能够自动移动啦!

接近尾声咯!是不是觉得之前看上去挺复杂的贪吃蛇,已经不那么复杂了?

最后我们还遗留的一个问题就是:如何gameover……

下期见!

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