Skip to content

Micro:bit 躲避砖块小游戏-附加功能

fanyingsudu 400

本篇是 Micro:bit 躲避砖块小游戏系列教程的第 5 篇,前 4 篇分别是
Micro:bit 模拟传球小程序
Micro:bit 重力控制
从超级玛丽看游戏制作基本要素
Micro bit 躲避砖块小游戏-基础部分
这篇教程我们将在上一篇教程的基础上,为躲避砖块小游戏添加上一些附加功能,

  1. 在游戏开始时为游戏添加开场动画,让玩家有个心理准备
  2. 在游戏进行过程中,加入记分系统
  3. 随着分数的递增,加快砖块的下落速度
  4. 当游戏结束时,显示分数

还是先看下效果:
fujia ys

实现原理


开场动画

过场动画非常简单,只需要显示 3 2 1 倒计时,然后显示一个向下的箭头,提示玩家小亮点的出现位置,因为小亮点初始化在屏幕底部中间,所以向下的箭头直接指向最后一行正中间就好。

记分系统

micro:bit 自带了分数模块,位于 游戏分类 下,有 3 个相关模块,分别是

  1. 将分数更改 x — 增加分数 x,例如 x 为 2,则每运行一次该模块,分数增加 2
  2. 设置分数 — 用于把当前分数设置成多少分
  3. 分数 — 用于获取当前分数的值
    fenshu

改变砖块下落速度

上一节的教程 里,我们设置了一个叫做 sudu 的变量,它代表了砖块下落的时间间隔,间隔越小,砖块下落速度越快

  • sudu = 600 时
    sudu 600
  • sudu = 400 时
    sudu 400
  • sudu = 200 时
    sudu 200

可以看到 sudu 越小 砖块速度越快,我们可以结合当前的分数来对变量 sudu 的值进行调整,分数越高,sudu 的值越小

显示分数

显示分数是 游戏结束 模块的默认行为,如果当前分数不为 0,则会在游戏结束后自动显示分数

程序实现


准备工作

首先我们从这里下载上节课的 hex 文件(请右键另存为),关于 hex 文件的用法请参考 Micro:bit 项目管理与 hex 文件的使用,然后打开 micro:bit 在线编程网站,导入刚才下载的 hex 文件。然后就可以接着上一节的教程继续编程啦。

开场动画

开场动画需要用到 基本 分类下的 显示数字显示 LED 模块
jiben
分别拖入 3 个 显示数字 模块,显示 3 2 1 和 1 个 显示 LED 模块 显示向下箭头 到 当开机时 事件里,另外,为了有一定停顿,在 显示 LED 模块后面放一个 暂停 模块,设置为 500 ms,就 ok 啦
guochangdonghua

[amazon_link asins=’B0746C94ZW,B07B8BX4Q7,B079HKT1BD’ template=’CopyOf-ProductGrid’ store=’boyd-23′ marketplace=’CN’ link_id=”]

记分系统

记分系统我们要做两件事情

  1. 在游戏开始时把分数设置为 0,这个只要在 当开机时 事件里放入一个 设置分数 模块,并设置为 0 就 ok 啦
    fenshu0
  2. 需要在障碍砖块下落到最底部时,分数加 1,因此,需要在 障碍砖块 y 为 4 时让分数加 1
    fenshujia1

改变砖块下落速度

这个规则可以自己定,这里我设置的是

  • 当分数 大于 3 时,设置 sudu 为 500
  • 当分数 大于 6 时,设置 sudu 为 400
  • 当分数 大于 9 时,设置 sudu 为 300

gaibiansudu
要记得 sudu,砖块下落越

至此,一个完整的 躲避砖块 小游戏就完成啦,是不是觉得自己棒棒哒,撒花花。不过教程到这里还没完,在最后一节教程里,我们来学习一下游戏中的玄学调参部分,看看不同的参数,如砖块掉落速度,重力控制响应时间,重力控制加速度阈值的不同大小对游戏手感的影响,欢迎关注啦。

最后,完整的程序 hex 文件 下载地址(请右键另存为)
把这个 hex 文件下载下来,导入到 micro:bit 在线编程网站上,就能看到完整的实现并自己用模拟器玩这个小游戏啦。

3.3 4 votes
Article Rating
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x