内容简介:今天我们来实现一个模拟传球小程序,通过按键 A 和 B 来控制球( led 小灯)左右移动,通过这个小程序,你将了解到如何使用 Micro:bit 提供的逻辑、循环、事件和选择模块。需要注意的一点是,学习编程的重点在于学习思考问题解决问题的过程,编程本身只是一个工具,是为了帮你解决问题的工具,如何思考才是最重要的。效果图:
今天我们来实现一个模拟传球小程序,通过按键 A 和 B 来控制球( led 小灯)左右移动,通过这个小程序,你将了解到如何使用 Micro:bit 提供的逻辑、循环、事件和选择模块。需要注意的一点是,学习编程的重点在于学习思考问题解决问题的过程,编程本身只是一个工具,是为了帮你解决问题的工具,如何思考才是最重要的。
效果图:
实现的功能
-
程序开始时,一个小球( led 小灯)从屏幕上方移动到屏幕中间
-
当按钮 A 按下时,小球向右移动,碰到屏幕边缘停止
-
当按钮 B 按下时,小球向左移动,碰到屏幕边缘停止
-
如果小球已经处于屏幕最右边,此时按下按钮 A,给出箭头提示按按钮 B,因为小球无法再往右移动
-
如果小球已经处于屏幕最左边,此时按下按钮 A,给出箭头提示按按钮 B,因为小球无法再往左移动
-
如果小球正向右移动,此时按下按钮 B,小球向左移动
-
如果小球正向左移动,此时按下按钮 A,小球向右移动
知识点
-
led 点阵及坐标
-
循环
-
无限循环
-
条件循环
-
按钮按下事件
-
逻辑判断
-
精灵
知识点解析
led点阵及坐标
Micro:bit 自带了一个 5×5 的 led 点阵屏,可用于文字或图型展示,左上角为 (0,0) 点,右下角为 (4,4) 点,水平方向(从左到右)为 x轴 方向,依次递增 [0-4],垂直方向(从上到下)为 y轴 方向,依次递增 [0-4],
各个点坐标分布如下 (x,y) :
| (0,0) | (1,0) | (2,0) | (3,0) | (4,0) |
| (0,1) | (1,1) | (2,1) | (3,1) | (4,1) |
| (0,2) | (1,2) | (2,2) | (3,2) | (4,2) |
| (0,3) | (1,3) | (2,3) | (3,3) | (4,3) |
| (0,4) | (1,4) | (2,4) | (3,4) | (4,4) |
循环
无限循环
无限循环,可以参考 前导知识-程序的流程与基本概念 里面关于无限循环的解释,顾名思义,就是一直会进行下去的循环,从进入循环体开始,从上到下执行,实行完毕后会回到循环体开头再从上到下执行循环体。
无限循环模块位于 基本 分类下
有条件循环
有条件循环与无限循环的不同点在于,有条件循环是带条件判断的,如果条件满足,就进入循环体执行,执行完一遍之后,再次判断条件,如果条件成立,则继续从上到下执行循环体,否则不继续执行循环体。
Micro:bit 提供了 4 种有条件循环,位于 循环 分类下
-
固定执行次数循环
-
带条件判断循环
-
带索引循环
-
遍历数组循环
详细解释见下图
按钮按下事件
按钮按下事件是事件的一种,关于 事件 这一概念可以参考 前导知识-程序的流程与基本概念 里面关于事件的解释,即当某个按钮被按下时应该执行的动作,micro bit 自带了 3个按钮,分别是正面的 A B 按钮和背面的 重置 按钮,但是 重置 按钮的行为不能被更改,默认为重新执行程序,因此没有对应的事件,并且 A B 可以同时按下,所以有 3 个按钮按下事件,位于 输入 分类下
-
当按钮 A 按下
-
当按钮 B 按下
-
当按钮 A+B 同时按下
逻辑判断
逻辑判断模块位于 逻辑 分类下,具体解释如下图
其中,选择结构可以相互组合组成更为复杂的选择结构,比如下面的例子包含了 3个选择结构,组成了逻辑:
如果 item > 0 (1)
如果 item = 5 (2)
显示数字 5
显示数字 1
否则
如果 item = 0 (3)
显示数字 0
显示数字 -1
举个例子,当 item 为 5 时,将显示数字 5 和 1,当 item 为 -2 时,显示数字 -1
精灵
精灵是游戏编程里一个常用的概念,精灵代表了一个角色,或是一个人物,在 Micro:bit 里它是一个LED,我们可以控制它进行游戏,它可以移动,可以检测有没有和其他精灵或者屏幕边缘碰撞,它可以有各种各样的属性,比如它当前的位置,它当前的方向等,我们可以在 游戏 分类下找到这些模块。
思路
了解完了知识点,我们来理一理实现思路。
-
当开机时,创建一个精灵,控制它从屏幕顶端移动到屏幕中间,即 y 坐标 增加 2 次
-
精灵会不停朝一个方向移动,需要用到一个循环,不停向当前方向移动 1
-
当按下按钮 A 时,精灵向右移动,控制精灵的 x 坐标每次加 1
-
当按下按钮 B 时,精灵向左移动,控制精灵的 x 坐标每次减 1 (增加 -1)
-
当按下按钮 A 时,如果精灵碰到屏幕右边,则显示指向按钮 B 的箭头
-
当按下按钮 B 时,如果精灵碰到屏幕左边,则显示指向按钮 A 的箭头
注意上面的用词,当 xxx 时,代表了一个 事件 ,如果 xx 则 xx,代表了一个 选择结构
思考题:知识点和思路都教给你了,思考下如何运用上面提到的模块实现这个游戏呢?
实现
接下来我们一步一步完成这个游戏:
-
「基本」->「当开机时」模块到编程区
-
「变量」->「设置变量」,取名为 jingling
-
「游戏」->「创建精灵」,坐标改为 x : 2,y : 0
-
「变量」->「将 item 设为」上一步 的模块,把 item 改为 jingling
-
「基本」->「暂停」模块,暂停 500ms
-
「循环」->「固定次数循环」模块,设置重复次数为 2 次
-
「游戏」-> 「更改 x 幅度为 1」模块到「固定次数循环」里,把 x 改为 y
-
「基本」->「暂停」模块到「固定次数循环」里,暂停 500ms
-
「变量」->「设置变量」,取名为 fudu ,值为0
-
「基本」->「无限循环」
-
「游戏」-> 「更改 x 幅度为 1」模块,1 改为 变量 fudu ,由于 fudu 默认为 0,因此精灵不移动
-
「基本」->「暂停」,暂停 500ms
-
「输入」->「当按钮A按下时」
-
「逻辑」->「x = x」,第一个 x 换成「游戏」->「jingling x」,第二个参数改为 4,即 jingling 在最右侧
-
「逻辑」->「如果为」,条件改成 上一步 的条件
-
「基本」->「显示 LED」到「如果为」里,画一个向右的箭头
-
「基本」->「暂停」模块到「如果为」里,暂停 500ms
-
「变量」->「将 item 设为」1,把 item 改为 fudu ,这样按下 A 时 jingling 就会不停加 1,即向右移动
-
选中「当按钮A按下时」按 Ctrl + C 复制,并按 Ctrl + V 粘贴
-
更改 上一步 粘贴的模块,把 按钮 A 改为 按钮 B,「如果为」条件改为 = 0
-
箭头改为 向左
-
fudu改为 -1
然后就完成啦,oh~yeah~
完整程序图
始发于微信公众号: 暴王不暴燥
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 程序员有话说 | 平时的程序猿 VS 面试的程序员
- 玩转小程序转发——小程序探索
- 利用“驱动人生”升级程序的恶意程序预警
- 我是女程序员,不是程序媛
- 「小程序JAVA实战」小程序搜索功能(54)
- 程序员高薪盛宴背后:程序员正在消失?
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
HTTP Essentials
Stephen A. Thomas、Stephen Thomas / Wiley / 2001-03-08 / USD 34.99
The first complete reference guide to the essential Web protocol As applications and services converge and Web technologies not only assume HTTP but require developers to manipulate it, it is be......一起来看看 《HTTP Essentials》 这本书的介绍吧!