【花雕动手做】Kitronik 可编程开发板基于 ARCADE MakeCode 之柠檬和草莓
Arduino与Kitronik ARCADE开发板应用指南 本文介绍了《Arduino手册》栏目的技术资源(涵盖BLDC、IoT等近4000篇案例)与Kitronik ARCADE游戏开发板的创新应用。ARCADE是一款支持MakeCode Arcade的可编程掌机,集成彩色屏幕、按键和震动反馈,适合教育及创客开发。通过示例游戏代码(Python实现草莓收集游戏),演示了角色控制、碰撞检测与倒计
《Arduino 手册(思路与案例)》栏目介绍:
在电子制作与智能控制的应用领域,本栏目涵盖了丰富的内容,包括但不限于以下主题:Arduino BLDC、Arduino CNC、Arduino E-Ink、Arduino ESP32 SPP、Arduino FreeRTOS、Arduino FOC、Arduino GRBL、Arduino HTTP、Arduino HUB75、Arduino IoT Cloud、Arduino JSON、Arduino LCD、Arduino OLED、Arduino LVGL、Arduino PID、Arduino TFT,以及Arduino智能家居、智慧交通、月球基地、智慧校园和智慧农业等多个方面与领域。不仅探讨了这些技术的基础知识和应用领域,还提供了众多具体的参考案例,帮助读者更好地理解和运用Arduino平台进行创新项目。目前,本栏目已有近4000篇相关博客,旨在为广大电子爱好者和开发者提供全面的学习资源与实践指导。通过这些丰富的案例和思路,读者可以获取灵感,推动自己的创作与开发进程。
https://blog.csdn.net/weixin_41659040/category_12422453.html
Kitronik ARCADE 是一款由英国教育科技公司 Kitronik 精心打造的可编程游戏机开发板,专为编程教学与创客实践而设计。该设备原生支持微软的 MakeCode Arcade 平台,用户可通过图形化或 JavaScript 编程方式,轻松创建、下载并运行复古风格的街机游戏。
它集成了彩色 LCD 显示屏、方向控制键、功能按键、蜂鸣器和震动马达等交互组件,提供完整的游戏输入输出体验。无论是初学者进行编程启蒙,还是创客群体开发交互式作品,Kitronik ARCADE 都能作为理想的硬件载体,助力创意实现。
凭借其开源友好、易于上手、兼容性强等特点,该开发板广泛应用于中小学编程课程、创客工作坊、游戏开发教学以及个人项目原型设计,深受教育者与技术爱好者的喜爱。
主要特征:
Kitronik ARCADE 是一款功能丰富的手持游戏手柄开发板,可与 Microsoft Arcade 编辑器一起使用。
编写您自己的游戏来玩或从 MakeCode Arcade 网站免费下载游戏。
使用丰富的教育材料从头开始创建游戏,或调整现有代码并学习开源方式。
它配备了全彩液晶广视角屏幕。
它有一个用于音频反馈的压电发声器。
利用振动电机进行触觉反馈。
它还具有;6 个玩家输入按钮、一个菜单按钮、一个重置按钮和一个开/关开关。
还有一个软件音量控制、一个 USB 编程端口和 2 个扩展端口,供专家级用户使用。
ARCADE 可以由 3xAA 电池或微型 USB 连接器供电。
Kitronik ARCADE 是一款专为与 MakeCode Arcade 编辑器一起使用而设计的掌上游戏平台,既可以编写自己的游戏并在 ARCADE 上运行它们,也可以下载现有游戏并享受功能齐全的掌上游戏体验。(网页版:https://arcade.makecode.com/)
Kitronik ARCADE 使用 Microsoft MakeCode 平台,具有以下优势:
图形化编程界面:适合初学者,支持拖拽式编程。
即时模拟器:可以实时测试游戏效果。
硬件兼容性:可部署到 Kitronik ARCADE 设备,实现实体游戏体验。
支持 Python/JavaScript:便于进阶学习。
作为学习、练习与尝试,这里创建一个柠檬和草莓的小游戏。
打开网页版:https://arcade.makecode.com/,设置项目名称:柠檬和草莓
MicroPython实验参考代码
def on_on_overlap(sprite, otherSprite):
mySprite.start_effect(effects.spray, 200)
info.change_score_by(1)
sprites.on_overlap(SpriteKind.player, SpriteKind.projectile, on_on_overlap)
projectile: Sprite = None
mySprite: Sprite = None
scene.set_background_color(10)
mySprite = sprites.create(img("""
4 4 4 . . 4 4 4 4 4 . . . . . .
4 5 5 4 4 5 5 5 5 5 4 4 . . . .
b 4 5 5 1 5 1 1 1 5 5 5 4 . . .
. b 5 5 5 5 1 1 5 5 1 1 5 4 . .
. b d 5 5 5 5 5 5 5 5 1 1 5 4 .
b 4 5 5 5 5 5 5 5 5 5 5 1 5 4 .
c d 5 5 5 5 5 5 5 5 5 5 5 5 5 4
c d 4 5 5 5 5 5 5 5 5 5 5 1 5 4
c 4 5 5 5 d 5 5 5 5 5 5 5 5 5 4
c 4 d 5 4 5 d 5 5 5 5 5 5 5 5 4
. c 4 5 5 5 5 d d d 5 5 5 5 5 b
. c 4 d 5 4 5 d 4 4 d 5 5 5 4 c
. . c 4 4 d 4 4 4 4 4 d d 5 d c
. . . c 4 4 4 4 4 4 4 4 5 5 5 4
. . . . c c b 4 4 4 b b 4 5 4 4
. . . . . . c c c c c c b b 4 .
"""),
SpriteKind.player)
controller.move_sprite(mySprite)
mySprite.set_stay_in_screen(True)
info.start_countdown(30)
def on_update_interval():
global projectile
projectile = sprites.create_projectile_from_side(img("""
. . . . . . . 6 . . . . . . . .
. . . . . . 8 6 6 . . . 6 8 . .
. . . e e e 8 8 6 6 . 6 7 8 . .
. . e 2 2 2 2 e 8 6 6 7 6 . . .
. e 2 2 4 4 2 7 7 7 7 7 8 6 . .
. e 2 4 4 2 6 7 7 7 6 7 6 8 8 .
e 2 4 5 2 2 6 7 7 6 2 7 7 6 . .
e 2 4 4 2 2 6 7 6 2 2 6 7 7 6 .
e 2 4 2 2 2 6 6 2 2 2 e 7 7 6 .
e 2 4 2 2 4 2 2 2 4 2 2 e 7 6 .
e 2 4 2 2 2 2 2 2 2 2 2 e c 6 .
e 2 2 2 2 2 2 2 4 e 2 e e c . .
e e 2 e 2 2 4 2 2 e e e c . . .
e e e e 2 e 2 2 e e e c . . . .
e e e 2 e e c e c c c . . . . .
. c c c c c c c . . . . . . . .
"""),
randint(-50, 50),
randint(-50, 50))
game.on_update_interval(500, on_update_interval)
代码解读
这段代码是一个用 MakeCode Arcade 编写的 草莓躲避类小游戏,玩家控制一个柠檬在屏幕中移动,尽可能多地接触飞来的“草莓”,以获得分数。下面是逐行解读,带你快速掌握它的机制和设计思路:
1、玩家控制与初始化
python
scene.set_background_color(10)
设置背景颜色为编号 10(通常是紫色或深蓝色),营造游戏氛围。
python
mySprite = sprites.create(img(“”“…”“”), SpriteKind.player)
controller.move_sprite(mySprite)
mySprite.set_stay_in_screen(True)
创建玩家角色 mySprite,图像是一个像素风格的角色(柠檬)。
玩家可以用方向键控制角色移动。
set_stay_in_screen(True) 确保角色不会移出屏幕边界。
2、倒计时机制
python
info.start_countdown(30)
游戏限时 30 秒。
倒计时结束后,游戏自动结束(胜负逻辑未在此代码中定义,但通常会触发 game.over())。
3、碰撞检测与得分
python
def on_on_overlap(sprite, otherSprite):
mySprite.start_effect(effects.spray, 200)
info.change_score_by(1)
sprites.on_overlap(SpriteKind.player, SpriteKind.projectile, on_on_overlap)
当玩家柠檬角色与草莓(SpriteKind.projectile)发生碰撞时:
播放喷洒粒子效果,持续 200 毫秒。
玩家得分 +1。
这与传统弹幕游戏不同:不是躲避,而是主动接触草莓来得分。
4、草莓生成逻辑
python
def on_update_interval():
global projectile
projectile = sprites.create_projectile_from_side(img(“”“…”“”), randint(-50, 50), randint(-50, 50))
每隔 500 毫秒(0.5 秒)生成一个草莓。
草莓图像是一个复杂的像素图。
草莓的速度是随机的:
水平速度 vx:-50 到 50
垂直速度 vy:-50 到 50
草莓从屏幕边缘发射,方向随机,制造混乱感。
图形编程参考实验程序
通过模拟器,调试与模拟运行
实验场景记录
更多推荐
所有评论(0)