35 【雕爷学编程】 MicroPython动手做——体验小游戏

知识点:什么是掌控板?
掌控板是一块普及STEAM创客教育、人工智能教育、机器人编程教育的开源智能硬件 。它集成ESP-32高性能双核芯片,支持WiFi和蓝牙双模通信,可作为物联网节点,实现物联网应用 。同时掌控板上集成了OLED显示屏、RGB灯、加速度计、麦克风、光线传感器、蜂鸣器、按键开关、触摸开关、金手指外部拓展接口,支持图形化及代码编程,可实现智能机器人、创客智造作品等智能控制类应用 。
掌控板硬件特性:
ESP-32主控
处理器: LX6双核处理器(一核处理高速连接;一核独立应用开发)
主频:高达的时钟频率
SRAM:520KB
Flash:8MB
Wi-Fi标准:FCC/CE/TELEC/KCC
Wi-Fi协议:802.11 b/g/n/d/e/i/k/r (802.11n,速度高达150 Mbps),A-MPDU和A-MSDU聚合,支持0.4us防护间隔
频率范围:2.4~2.5 GHz
蓝牙协议:符合蓝牙v4.2 BR/EDR和BLE标准
蓝牙音频:CVSD和SBC音频低功耗:10uA
供电方式:Micro USB供电
工作电压:3.3V
最大工作电流:200mA
最大负载电流:

35  【雕爷学编程】 MicroPython动手做——体验小游戏

文章插图
掌控板载
三轴加速度计,测量范围:±2/4/8/16G
地磁传感器,测量范围:±8 Gauss;精度0.4mGz,电子罗盘误差±0.5°
光线传感器
麦克风
3 颗全彩灯珠
1.3英寸OLED显示屏,支持16*16字符显示,分辨率
无源蜂鸣器
支持2个物理按键(A/B)、6个触摸按键
支持1路鳄鱼夹接口,可方便接入各种阻性传感器
拓展接口
20通道数字I/O,(其中支持12路PWM,6路触摸输入)
5通道12bit模拟输入ADC,P0~P4
1路的外部输入鳄鱼夹接口:EXT/GND
支持I2C、UART、SPI通讯协议
小游戏 (体积较小、玩法简单的游戏)
小游戏是一个较模糊的概念,它是相对于体积庞大的单机游戏及网络游戏而言的,泛指所有体积较小、玩法简单的游戏,通常这类游戏以休闲益智类为主,有单机版有网页版,在网页上嵌入的多为FLASH格式 。当下小游戏主要是指在线玩的flash版本游戏,统称小游戏,其实小游戏还包含单机游戏,小型游戏机等 。一般游戏大小小于10m的游戏都统称为小游戏,一些街机类小游戏 。因其游戏安装简便,耐玩性强,无依赖性而广受白领及小朋友的喜爱 。
“小游戏”这个词的型含义其实很简单,它不是一些大的游戏,不必花费更多的时间和精力 。小游戏是原始的游戏娱乐方式,小游戏本身是为了叫人们在工作,学习后的一种娱乐、休闲的一种方式,不是为了叫玩家为之花费金钱、花费精力,更不是叫玩家为他痴迷 。小游戏也可以理解为“Flash游戏”,是以SWF为后缀的游戏的总称.这些游戏是通过Flash软件和 Flash 编程语言 Flash制作而成 。由于Flash是矢量软件,所以小游戏放大后几乎不影响画面效果 。Flash小游戏是一种新兴起的游戏形式,以游戏简单,操作方便,绿色,无需安装,文件体积小等优点渐渐被广大网友喜爱 。
35  【雕爷学编程】 MicroPython动手做——体验小游戏

文章插图
1、弹球游戏
#MicroPython动手做(35)——体验小游戏#弹球游戏from mpython import *import musicimport timedef func():global a, b, FMQ, loc, staart_flag, Start, X, Ymusic.pitch(131, 500)loc = 44a = 2b = 2staart_flag = FalseStart = TrueY = 48X = 64FMQ = Falsedef a1():global a, b, FMQ, loc, staart_flag, Start, X, Yif FMQ:music.pitch(131, 500)FMQ = Falsedef a3():global a, b, FMQ, loc, staart_flag, Start, X, Yif Start:if button_a.value() == 0:staart_flag = Trueloc = loc - 2if loc < 0:loc = 0if button_b.value() == 0:staart_flag = Trueloc = loc + 2if loc > 88:loc = 88def a2():global a, b, FMQ, loc, staart_flag, Start, X, Yoled.fill(0)oled.fill_rect(loc, 55, 40, 5, 1)oled.fill_circle(X, Y, 5, 1)oled.show()if button_a.value() == 0 and button_b.value() == 0:func()while button_a.value() == 0 and button_b.value() == 0:passtime.sleep_ms(100)def a4():global a, b, FMQ, loc, staart_flag, Start, X, Yif staart_flag:X = X + aY = Y - bif X >= 122:a = a * -1if X