龙空技术网

「图形化编程」Micro:bit Flappy Bird 小游戏(二)

暴王不暴燥 231

前言:

如今兄弟们对“超级玛丽编程素材”大约比较注意,同学们都需要剖析一些“超级玛丽编程素材”的相关内容。那么小编在网上搜集了一些关于“超级玛丽编程素材””的相关文章,希望小伙伴们能喜欢,姐妹们一起来了解一下吧!

传说世界上有一种鸟没有脚,生下来就不停的飞,飞累了就睡在风里。一辈子只能着陆一次,那就是死亡的时候,对没错,我说的就是 Flappy Bird(笑)

通过 「图形化编程」Micro:bit Flappy Bird 小游戏(一) 的教程,我们已经了解了 Flappy Bird 小游戏的基本原理,并且实现了小鸟的移动部分,这节教程我们来看看障碍物(超级玛丽的管子)是如何生成的。

还是先来看下效果:

可以看到高低起伏的障碍物从右往左移动

管子的生成有以下几个特点:

1 管子生成的速率要固定

2 由于 micro:bit 板子一列最多有 5 个 led,这里我们设定管子占其中 3 格,连续的两格作为通道让小鸟通过

3 管子占的 3 格有以下 4 种可能

分别对应的障碍物坐标组合是(障碍物生成在最右边)

1) (4,2)(4,3)(4,4)

2) (4,0)(4,3)(4,4)

3) (4,0)(4,1)(4,4)

4) (4,0)(4,1)(4,2)

4 管子的位置需要随机生成

5 管子与管子之间要有空隙,即隔一列生成一个管子

下面我们来实现这个生成管子的逻辑

1 先打开「图形化编程」Micro:bit Flappy Bird 小游戏(一)已经实现的项目,如果你没有实现上一节的内容,也没关系,可以看看下面这张图,或者参考「图形化编程」Micro:bit Flappy Bird 小游戏(一)来查看上一节的内容

2 创建一个 函数,位于 高级 > 函数分类下,命名为 shengchengguanzi,关于函数的知识,可以参考 前导知识-函数

3 创建一个 变量,位于 变量 分类下,命名为 suijishu

4 设置变量 suijishu 为 选取随机数 1 到 4(随机数模块位于 数学 分类下),因为 管子中障碍物的位置一共有 4 种可能,所以我们从 1 到 4 范围内随机生成一个数字,每个数字代表了一个可能的障碍物位置组合

5 创建一个 变量,命名为 linshizhangai

6 如果 suijishu 等于 1,那么 将 linshizhangai 设置为 数组 创建精灵 x:4 y:2, 创建精灵 x:4 y:3, 创建精灵 x:4 y:4

7 然后复制 3 次 第 6 步创建的 如果 模块,拖到 第 6 步创建的 如果 模块下方,分别改为

1) linshizhangai 等于 2,创建精灵 x: 4 y:0, x:4 y:3, x:4 y:4,

2) linshizhangai 等于 3,创建精灵 x: 4 y:0, x:4 y:1, x:4 y:4,

3) linshizhangai 等于 4,创建精灵 x: 4 y:0, x:4 y:1, x:4 y:2

8 创建一个 变量,命名为 suoyouzhangai

9 将值 linshizhangai 添加到 数组 suoyouzhangai 结尾(该模块位于 数组 分类下), 这里出现了一个新的概念,数组的数组,如果还是拿数组比作抽屉柜的话,那数组的数组就可以看作是一个超级大的抽屉柜,这个超级大的抽屉柜的每个抽屉里不是放的小球了,而是放着一个小的抽屉柜,小的抽屉柜里放着小球,这样是不是就理解啦,把所有障碍放进一个数组里,方便我们后面往左移动所有的障碍

下面我们来移动障碍物,移动障碍物的过程其实是减小 每个障碍物的 x 轴坐标

创建一个新的 函数,命名为 yidongzhangai,由于是数组的数组,我们需要从最外层数组里先取出里面的小数组,然后在从小数组里取出每个精灵,依次减少每个精灵的 x 轴坐标就可以啦创建一个 变量,命名为 guanzi拖一个 循环 分类下的 将数组 x 中的元素逐个取出,以 y 引用每次取出的值,改为 将数组 suoyouzguanz 中的元素逐个取出,以 guanzi 引用每次取出的值,这样 guanzi 这个变量就代表了一个管子,它里面包含了 3 个精灵创建一个 变量,命名为 zhangai再拖一个 循环 分类下的 将数组 x 中的元素逐个取出,以 y 引用每次取出的值 到 第 3 步创建的模块下,改为 将数组 guanzi 中的元素逐个取出,以 zhangai 引用每次取出的值,这样 zhangai 就代表了每个 管子里的 3 个障碍拖一个 游戏 分类下的 更改 x 幅度为 0 模块,改为 zhangai 更改 x 幅度为 -1,即每次 减小 精灵的 x 轴坐标为 1

最后在 无限循环模块里分别调用 shengchengguanzi 和 yidongzhangai,把 yidongzhangai 放在 暂停 模块后面

完整程序图

今天就到这里吧,下个教程来对 yidongzhangai 做一些修改,加上对 小鸟碰撞的检测和分数的计算,并且加上生成障碍的间隔,使障碍与障碍直接有一列间隔,尽请期待啦。

标签: #超级玛丽编程素材