7983浏览
查看: 7983|回复: 0

[K10教程] 【行空板K10基础入门教程】第02课:打地鼠游戏

[复制链接]
本帖最后由 zoey不种土豆 于 2024-12-2 09:29 编辑

【行空板K10基础入门教程】第02课:打地鼠游戏图35
Hi,欢迎各位来到行空板K10的第二课!经过上一节课【行空板K10基础入门教程】第01课:趣识脸谱的学习,我们掌握了在行空板K10上显示文字、图片、运算符指令和使用行空板K10内置环境光传感器的方法。这节课,我们将通过“打地鼠”小游戏,理解程序中的变量概念,掌握行空板K10板载加速度传感器的使用、灯光、音调效果的设置,以及逻辑运算符的使用方法。
打地鼠是一款非常经典的街机游戏,后来在网络上也出了打地鼠的游戏,相信大家都不陌生。今天我们要尝试用行空板K10板载的加速度传感器,开发出我们的打地鼠游戏,一起来试试吧!
【行空板K10基础入门教程】第02课:打地鼠游戏图1


任务目标
在行空板K10上创建游戏场景,利用加速度传感器来判断能否打中地鼠。
如果能够打中地鼠,我们就亮绿色的灯,同时播放 F4 音调;如果打不中地鼠,我们就亮红色的灯,同时播放 A3 音调。
【行空板K10基础入门教程】第02课:打地鼠游戏图2

知识目标
1、 理解程序中的变量概念
2、 掌握行空板K10板载加速度传感器的使用
3、 掌握行空板K10灯光、音调效果的设置
4、 掌握逻辑运算符的使用方法

材料清单
硬件清单:
行空板K10
数据线
【行空板K10基础入门教程】第02课:打地鼠游戏图3

软件使用:

Mind+编程软件
1.软件压缩包下载:
   * 网页下载:https://download3.dfrobot.com.cn ... 0_test_20241012.zip
   * 百度网盘下载:https://pan.baidu.com 提取码: 17d6
   * 夸克网盘下载
2.将压缩包解压,注意解压过程中关闭杀毒软件,解压后文件夹路径不含中文,解压后文件夹路径不宜过长
3.打开解压后的文件夹,找到 Mind+.exe,双击打开
4.若编译任何代码都报错,建议在解压时将所有后台的杀毒软件退出,将解压出的文件夹放到 C 盘根目录,文件夹的名字改为"win-ia32-unpacked20241012"。文件夹中的 exe 文件,不可直接拖到桌面,要右键-发送到桌面快捷方式。

软件基础使用
1、 打开 Mind+,切换到上传模式
【行空板K10基础入门教程】第02课:打地鼠游戏图4

2、 加载行空板K10
基于前面的操作,只需要点击“扩展库”,找到“官方库”下的“行空板”模块点击完成添加,点击返回后,就可以在“指令区”找到行空板K10,完成行空板K10 加载。
【行空板K10基础入门教程】第02课:打地鼠游戏图5

3、连接行空板K10
首先,你需要通过 USB 连接线将行空板K10连接到计算机,
【行空板K10基础入门教程】第02课:打地鼠游戏图6

然后,点击连接设备后,点击 COM7-UNIHIKER K10 进行连接。
【行空板K10基础入门教程】第02课:打地鼠游戏图7
注:不同行空板K10 的设备名称可能不同,但都是以 K10 结尾。

动手实践
接下来一起动手完成今天的课程任务吧。我们将从创建打地鼠的游戏场景开始,逐步学习如何在行空板K10上利用板载加速度传感器实现打地鼠的游戏功能。
任务一:创建游戏场景
这一部分我们要创建初始化的游戏场景,并且让地鼠能够在四个洞口随机出现。
任务二:判断是否砸中地鼠
这一部分我们主要实现利用板载的加速度传感器判断是否砸中地鼠的功能。
任务三:游戏反馈效果设置
这一部分我们主要进行是否砸中地鼠的效果设置。

任务一:创建游戏场景
【行空板K10基础入门教程】第02课:打地鼠游戏图8

1、 硬件搭建
确认使用 USB 连接线将行空板K10连接到计算机。
2、 软件准备
确认已打开 Mind+,在 Python 图形化模式下出现预设代码,成功加载行空板。接下来就可以编写项目程序了。
【行空板K10基础入门教程】第02课:打地鼠游戏图9

3、 编写程序
STEP1:使用 缓存显示本地加载图片 指令,设置游戏的初始场景,相关的设置如下。
【行空板K10基础入门教程】第02课:打地鼠游戏图10

STEP2:设置地鼠在四个洞口随机出现。
在这个游戏中,地鼠会从四个洞口随机冒出,四个场景各对应一张图片。因此,为了每隔两秒地鼠能够随机从一个洞口出来,我们需要用到 在()和()之间取随机数的指令,并用变量“位置”记录得到的随机数,相关的程序设置如下。
在()和()之间取随机数指令的使用:

【行空板K10基础入门教程】第02课:打地鼠游戏图11

新建变量“位置”,并将随机数赋值给变量的操作如下:
【行空板K10基础入门教程】第02课:打地鼠游戏图12
注:关于“变量”的更多信息,详见“知识园地”

STEP3:设置地鼠在对应位置出现图片。
在前面,我们已经用变量“位置”存储下了当次游戏的随机数,我们需要用 如果()那么执行();否则如果()那么执行() 指令,对不同随机数对应出现的地鼠图片进行设置,相关程序代码如下。
【行空板K10基础入门教程】第02课:打地鼠游戏图13

为了让主程序不显得太“臃肿”,我们把每个功能下的代码封装到“函数”当中,在主程序当中,我们只需要调用对应的函数,就可以实现相对应的功能,函数的定义操作如下:
【行空板K10基础入门教程】第02课:打地鼠游戏图14

游戏场景设置模块完整代码如下图:
【行空板K10基础入门教程】第02课:打地鼠游戏图15

4、 程序执行
STEP1:检查并保证行空板K10已连接 Mind+,即在“菜单栏”部分显示 IP;
【行空板K10基础入门教程】第02课:打地鼠游戏图16

STEP2:点击界面右上方的上传到设备按钮;
【行空板K10基础入门教程】第02课:打地鼠游戏图17

STEP3:观察行空板K10屏幕显示效果(参考下图)。
【行空板K10基础入门教程】第02课:打地鼠游戏图18

任务二:判断是否打中地鼠
在这个游戏中,我们通过板载的加速度传感器检测行空板K10的倾斜姿态,如果地鼠在前边出现,那么只有行空板K10监测到姿态为“向前倾斜”时,才能满足打中地鼠的条件。
1、 编写程序
STEP1:判定是否砸中地鼠。
我们需要先利用 当前姿态为向前倾斜?指令判断行空板K10的倾斜状态,接着用 如果()那么执行();否则如果()那么执行() 指令,判断倾斜方向是否跟地鼠出现的位置一致,如果一致,我们就赋值变量“砸中”为“1”,表示砸中地鼠。要注意,我们在最开始要先给“砸中”赋值为 0,确保每次只有砸中地鼠时,才能赋值为“1”。
当前姿态为向前倾斜? 指令的使用以及行空板的倾斜方向如下图所示:
【行空板K10基础入门教程】第02课:打地鼠游戏图19

注意:要了解加速度传感器的更多信息,详见“知识园地”。
用 如果()那么执行();否则如果()那么执行() 指令判断倾斜方向与地鼠位置是否一致,我们需要用到“逻辑与运算”,只有两个条件都满足时,才判断为打中地鼠。行空板K10的倾斜方向以及具体的程序操作如下。
【行空板K10基础入门教程】第02课:打地鼠游戏图20
【行空板K10基础入门教程】第02课:打地鼠游戏图21

注意:要了解逻辑运算的更多信息,详见“知识园地”。

STEP2:设置游戏时间。
为了让玩家在规定时间 2 秒内完成“打地鼠”的任务,我们需要设定变量“time”,用来记录规定时间,即用后获取的系统运行时间减去初始的系统运行时间,如果这个时间超过 2 秒,则判断为游戏失败,未砸中地鼠。相关的程序如下:
【行空板K10基础入门教程】第02课:打地鼠游戏图22

判断是否砸中模块完整程序代码如下:
【行空板K10基础入门教程】第02课:打地鼠游戏图23

2、程序运行
STEP1:连接行空板K10
STEP2:点击界面右上方的“上传到设备”按钮
STEP3:进行游戏,观察倾斜方向与地鼠出现位置一致时,可以在屏幕上看到地鼠出现的效果图。(如下图)。
【行空板K10基础入门教程】第02课:打地鼠游戏图24

任务三:游戏反馈效果设置
在这个任务中,我们需要根据前面经过判断之后,为不同变量“砸中”的值,设置不同的灯光和音效反馈效果。
1、 编写程序
STEP1:设置灯光和音效效果。
对于是否能够砸中地鼠,我们设置两种不同的反馈效果。如果能够打中地鼠,我们就亮绿色的灯,同时播放音调F4 3/4 拍;如果打不中地鼠,我们就亮红色的灯,同时播放音调A3 1 拍。
灯光、音调指令的设置指令如下图:
【行空板K10基础入门教程】第02课:打地鼠游戏图25

STEP2:判定执行
经过前面的判定,打中地鼠,能变量“砸中”值为 1,未打中,则变量“砸中”值为 0,我们使用 如果()那么执行()指令,对不同值分别执行相应事件。
【行空板K10基础入门教程】第02课:打地鼠游戏图26

将两种情况下的程序代码,写到两个函数“砸中效果”“没砸中效果”中,完整的程序参考以下代码:
【行空板K10基础入门教程】第02课:打地鼠游戏图27

2、 运行程序
点击上传到设备,试玩一下你自制的打地鼠游戏吧!


知识园地
1、变量
为了便于理解,我们可以将变量看作是一个盒子,给变量赋值就相当于往这个盒子里放东西。变量可以重复的赋值,就是说盒子里的东西是可以拿出来的,拿出来后再往盒子里放另一个东西。
【行空板K10基础入门教程】第02课:打地鼠游戏图28

这个程序就是给 flag 变量重复赋值,第一次赋值,相当于在 flag 这个空盒子里面放入了一个数字 0,那么 flag 的值就为 0。第二次赋值时,将 0 拿出来,再将数字 1 放入盒子,flag 的值为 1。
【行空板K10基础入门教程】第02课:打地鼠游戏图29

注意:新建变量时,需要给这个变量进行命名,命名时严格遵守变量的命名规则。
(1)一般由数字、字母、下划线构成;
(2)命名不能使用 Python 的关键字,即 Python 中已经有特殊含义的词,如 True、False、def、if、elif、
else、import 等;
(3)名称中不能包含特殊字符(\`~!@ #$% ^&*()+<>?:../;'[]);
(4)命名时最好能做到见名知意;

2、逻辑运算
用于对程序中的逻辑值进行运算,逻辑值也只有两种,真和假。逻辑运算符有三个,分别为与、或、非,对应的程序模块如下图:
【行空板K10基础入门教程】第02课:打地鼠游戏图30


从模块可以看出来,逻辑运算符“与”和逻辑运算符“或”,必须要有两个操作数才能进行运算,因此逻辑运算符“与“和逻辑运算符”或“又称为双目运算符。逻辑运算符“非”称为单目运算符,只要求一个操作数就可以进行运算。
逻辑运算符“与”
只有当两个操作数的值都为真时,运算结果为 true(真),否则为 false(假)。例如:当 Y=180 时,Y>150并且 Y<200,那下面整个逻辑表达式的逻辑值为 true(真)。这个“与”就相当于日常生活中表达的“并且”。
【行空板K10基础入门教程】第02课:打地鼠游戏图31
逻辑运算符“或”
只要其中一个操作数的值为真时,运算结果就为 true(真),当两个操作数的值都为假时,运算结果为false(假)。逻辑运算符“或”,就相当于生活中我们说的“或者”。
逻辑运算符“非”
只对一个操作数的值进行运算,当操作数的值为真时,逻辑运算结果为 false(假)。当操作数的值为假时,逻辑运算结果为 true。

3、行空板K10内置环境光传感器
行空板K10内置加速度传感器,可以对行空板K10的姿态进行检测,同时可以读取板载加速度传感器(X 方向、Y 方向、Z 方向或强度)的数值。
【行空板K10基础入门教程】第02课:打地鼠游戏图32

与加速度传感器相关指令的介绍如下:
【行空板K10基础入门教程】第02课:打地鼠游戏图33

本文程序和相关素材下载:
下载附件第二课 打地鼠游戏.rar

延伸阅读:
【行空板K10基础入门教程】第01课:趣识脸谱
下一课:【行空板K10基础入门教程】第03课:K10随身听
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail