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

【EV3进阶】制作小游戏:限制贪吃蛇的移动范围(四)

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

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

之前的课程我们完成了snake和apple的生成、重叠的部分。

也就是数据体系的调整。

 

今天我们来设定一下snake的移动范围

 

虽然在屏幕上,snake已经可以自由移动。

但是这个移动是无限距离的,也就是说,点可以移出屏幕到我们看不见的地方

 

这当然是一个很重要的问题。

因为贪吃蛇游戏中,如果点碰到墙壁,是要判断为game over的。

 


我们可以很好理解,

既然是移动范围的限制,那就一定在移动数据上要作一些文章

 

在这个程序中,跟移动有关的,是两部分数据。

 

1、按键对应的移动值

【EV3进阶】制作小游戏:限制贪吃蛇的移动范围(四)

2、snake坐标的x、y轴值

【EV3进阶】制作小游戏:限制贪吃蛇的移动范围(四)

理论上,这两部分数据,任何一个都能控制snake的移动范围。

 

但它们之间有什么区别呢?

 

很容易可以发现,

按键对应的变化,是一个“过程”值。

snake的横纵坐标x、y,是一个“结果”值。

 

而移动范围本身,其实是一个对于运算结果的约束条件。

所以,结果对应结果,我们只需要在这个上面延伸即可。

 

snakex和snakey变量我们如果要让她在屏幕中显示,而不跳出屏幕。明显就要设定其最大值和最小值

 


根据我们之前的程序,取值范围要跟apple相同。

所以就是(0,0)~(170,120)的范围内。如下图:

【EV3进阶】制作小游戏:限制贪吃蛇的移动范围(四)

首先设定snakex的最大值。

提取出已经处理完成的snakex值,进行一个比较判断。

【EV3进阶】制作小游戏:限制贪吃蛇的移动范围(四)

当snakex值小于0的时候,则snakex固定值为0。

当snakex值大于0的时候,注意!且snakex大于170的时候,则snakex的值固定为170。

 

请注意这波操作。如下图:

【EV3进阶】制作小游戏:限制贪吃蛇的移动范围(四)

这样一来snakex的取值范围就被限制住了。

 

而snakey值跟上面的操作其实是一样的。

【EV3进阶】制作小游戏:限制贪吃蛇的移动范围(四)

这里我们大家不要被一堆模块和判断交错的流程搞得一团浆糊!

仔细理解这一团逻辑,在下图中,我已经给大家标出来了。

【EV3进阶】制作小游戏:限制贪吃蛇的移动范围(四)


 

然后,我们要把这部分放到原来的整个程序中去。

应该放在哪个位置呢?

 

如上面我们所描述过的,这个部分应该放在:

 

按键——处理移动数据,这两部份之后

所以,我们将他们写入到这里,完善这个程序即可。

【EV3进阶】制作小游戏:限制贪吃蛇的移动范围(四)

动手试一试。

 

本周开始为短篇,每篇解决一个问题,每周我会保证文字数量,所以也就是会多发一篇稿子。

希望能让大家阅读起来更方便!

 

下次见。

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