很多游戏中都需要选定角色、排次序、分配任务等,大家往往采用抽签、石头剪刀布、比大小等方法来解决,今天好搭BOX给大家带来一个游戏辅助小帮手—幸运轮盘灯,你可以用它随机选人、排序、抽签……更多更多的功能等你去发现。
幸运轮盘灯是通过按钮的不同控制方法,让很多灯能够进行随机的变换。
上次我们学习的彩色LED灯便可以作为轮盘灯,另外,好搭BOX还给大家带来了一个控制工具——按键,下面我们来一起认识一下。
按键模块 |
图4-1 按键模块
本模块中有“上”、“中”、“下”、“左”、“右”五个按键,可以作为开关使用(如上图4-1所示)。按键有“按下”和“弹起”两种状态。默认状态是“弹起”;当用手指按住按键帽往下按、并且保持不动的时候,就处于“按下”状态;松开手指,按键又会重回处于“弹起”状态。
使用这个指令可以判断按键是否处于“按下”状态,中间的下拉菜单可以选择“上”、“下”、“左”、“右”、“中”五个按键。
要制作本课的范例作品,可以按以下步骤先连接硬件、连接网络,然后进入“好好搭搭”网站编写、调试、编译、下载程序。
准备工作:搭建硬件、连接网络、进入网站 | |
第一步:搭建硬件、连接网络。将按钮模块和彩色LED模块放置于主控板上任意六边形区域,磁铁吸合(如下图4-2所示);打开主控板的电源开关,等待主控板连接网络成功。
图4-2 “幸运轮盘灯”范例作品硬件连接图
第二步:进入网站。打开浏览器,登录“好好搭搭”网站;单击网站上方的“创作”按钮,在“无线编程”网页中选择“好搭BOX智能实验箱”模板,进入程序设计页。
用彩色LED模块制作的幸运轮盘灯,需要结合上节课学习的不同灯光效果的制作。本节课主要强调按键对于灯的启停和灯光秀的启停控制,以及一个按键和多个按键对于同一个效果的控制。
案例一:单按键控制灯亮灭 | |
单击 “输入”类别,找到读按键值的语句,并将这条指令拖动到脚本区。在生活当中用按键去控制灯的开与关是非常普遍的,那下面我们就再请出彩色LED尝试用按钮来控制一个灯的亮灭,当按钮处于“按下”状态时,彩色LED灯的第一个灯亮红光,其他五个灯处于灭的状态 ;当按钮处于“弹起”状态时,第一个灯也处于灭的状态。具体程序代码如下图4-3所示:
图4-3“单按键控制灯的亮灭”程序代码
如果-执行-否则指令是如果执行指令变形而来的,变形操作如下:
| 用单按键控制灯光秀的起停,按“中”按钮,彩色LED6个灯随机显示,松开之后,随机停止,只保留一个灯亮。 |
我发现:________________________________________________________________
_______________________________________________________________________
案例二:单按键控制全部灯的亮灭 | |
在第3课“炫彩灯光秀”的案例2中学会了如何点亮全部的LED灯,需要重复设置LED灯珠的显示状态,使用这种方式在控制较多的LED灯时就会过于麻烦。可以新建变量后使用“声明并赋值”命令搭配“重复执行指定次数”指令,就能够将LED灯全部点亮。例如当按钮处于“按下”状态时,重复执行6次点亮LED灯的所有灯珠。
下面新建一个名为“Num”的变量为例,可以先单击“变量”指令类别中的“创建变量”按钮,在打开的“新变量的名称”对话框中(如下图所示)输入新变量为“Num”,输入完成后单击“确定”按钮,就会在“变量”指令类别中新建这个变量。如下图4-4所示:
图4-4“新建变量”对话框
变量创建完成后,在编写程序时,还需要先“声明变量类别”。也就是将“变量”指令类别中的“声明并赋值”指令拖动到编程区,与默认的“初始化”指令组合,再将“数字与逻辑”指令类别中“数值输入”指令作为“声明并赋值”指令的参数,设置“数值输入”指令参数为“1”。具体初始化程序代码如下图4-5所示:
图4-5“初始化中声明并赋值变量”程序代码
在“初始化”脚本中声明变量后,可以在“重复执行”脚本中使用“赋值”指令累加变量的值,点亮全部LED灯。先赋值“Num”为1,后执行“重复执行6次”脚本,在此脚本中先点亮第1个彩色LED灯,后累加6次“Num”的值,点亮剩余的彩色LED灯,具体程序代码如下图4-6所示:
图4-6“单按键控制全部灯的亮灭”程序代码
| 用单按键搭配变量控制灯光秀的起停,按“中”按钮,彩色LED6个灯顺序显示和熄灭,松开之后停止,只保留一个灯亮。 |
我发现:________________________________________________________________
_______________________________________________________________________
案例三:双按键控制灯的亮灭 | |
以上我们通过单按键的实时状态来控制灯的亮灭,例如当按键一直处于“按下”状态时,灯点亮,若是按键处于“弹起”状态时灯便熄灭。那如何能让灯在读取到按键“按下”状态时点亮,而当按键变为“弹起”状态时还是依然点亮呢?
下面我们先使用两个按键来帮助我们实现以上效果。例如按一下“上”按键,全部灯点亮,按一下“下”按键,全部灯熄灭。具体程序代码如下图4-7所示:
图4-7 “双按键控制灯随机点亮”程序代码
| 用以上双按键控制方法,尝试控制灯光秀的亮灭,即按下“左”按钮,彩色LED6个灯随机显示,按下“右”按键,停止随机显示并且所有灯熄灭。请你观察是否能够实现想要的效果呢? |
我发现:________________________________________________________________
______________________________________________________________________
通过以上尝试我们可以发现:若是“上”按键被按下,灯光秀程序启动,那么我们就必须一直按住“上”按键,才能保证灯光秀程序启动的条件成立,如果我们还是想要实现按一下“上”按键之后,灯光秀就能持续工作,那么就必须找一个能够记住按键状态值的工具,我们的老朋友——变量,就可以帮我们实现以上的效果,下面我们一起来试一试。具体程序代码如下图4-8所示:
案例四: 双按键控制灯光秀的起停 | |
图4-8 “双按键控制灯光秀起停”程序代码
上一节课我们学习了多种灯光变换的效果,按键模块中也有五个按键,那是否可以实现一个按键控制一种灯光效果的起停呢?即按下某一个按钮后松开,启动一种灯光效果,再按下该按钮后松开,关闭该种灯光效果。假设“中”按键控制彩色LED灯的亮灭,按一下“中”按键后松开,彩色LED全部亮起,再按一下“中”按键松开,彩色LED灯全部熄灭,如此循环。
我打算这么做:_______________________________________________________
______________________________________________________________________。
做的时候需要注意:____________________________________________________
______________________________________________________________________。