Kitronik ARCADE 是一款由英国教育科技公司 Kitronik 精心打造的可编程游戏机开发板,专为编程教学与创客实践而设计。该设备原生支持微软的 MakeCode Arcade 平台,用户可通过图形化或 JavaScript 编程方式,轻松创建、下载并运行复古风格的街机游戏。
它集成了彩色 LCD 显示屏、方向控制键、功能按键、蜂鸣器和震动马达等交互组件,提供完整的游戏输入输出体验。无论是初学者进行编程启蒙,还是创客群体开发交互式作品,Kitronik ARCADE 都能作为理想的硬件载体,助力创意实现。
凭借其开源友好、易于上手、兼容性强等特点,该开发板广泛应用于中小学编程课程、创客工作坊、游戏开发教学以及个人项目原型设计,深受教育者与技术爱好者的喜爱。


作为学习、练习与尝试,这里创建一个雪花球贺卡的小游戏。
打开网页版:https://arcade.makecode.com/,设置项目名称:雪花球贺卡
MicroPython实验参考代码
def on_a_pressed():
scene.camera_shake(12, 500)
snow.big_short_blizzard(scenery)
music.play(music.create_song(assets.song("""
winter_wonderland
""")),
music.PlaybackMode.IN_BACKGROUND)
controller.A.on_event(ControllerButtonEvent.PRESSED, on_a_pressed)
def on_b_pressed():
game.show_long_text("Happy Holidays!", DialogLayout.BOTTOM)
controller.B.on_event(ControllerButtonEvent.PRESSED, on_b_pressed)
anim: Sprite = None
scenery: Sprite = None
globe: Sprite = None
scene.set_background_color(7)
def on_wrap1():
global globe
globe = sprites.create(assets.image("""
snow_box
"""), SpriteKind.player)
globe.z = 1000
sprites.wrap1(on_wrap1)
def on_wrap2():
global scenery
scenery = sprites.create(img("""
..............................................................................................................
......................................................cc5.....................................................
.....................................................c5aa.....................................................
....................................................cc5aac....................................................
...................................................c151aaac...................................................
..................................................c55111aa1c..................................................
..................................................c551511aa5c.................................................
.................................................cc5511111a5c.................................................
.................................................1c5115111aac.................................................
...............................................5555aaaaaaaaac.................................................
..............................................5511aaaaaaaaa.cc................................................
.............................................5151aaaa1a5555555c...............................................
............................................5c11aaa1a1555188855c..............................................
...........................................c555aa1a111511888885c..............................................
..........................................c.c5aaa11111511888885c..............................................
..........................................c.caaaa11115555888881c..............................................
..........................................c..5aaaa555555558881c...............................................
.........................................cc..c.5aaaa551551.51c................................................
........................................5515555555aaaa5a155cc5555555c.........................................
.......................................cc1555151151aaaaaaa55555515155c........................................
.......................................5c11555888111115aaaaaa11111115c........................................
.......................................511155888881111155aaaa111111115c.......................................
.......................................c511118888811111115aaaaaaa111155c......................................
........................................51111888881111155111a1aaaa1aa5c.......................................
........................................511111888111155111111aaaaaaaaa........................................
.........................................5111111111151555155515aaaaaac........................................
.......................................ccc555555555511111555555555a5.c........................................
.....................................c5555.5555555555555555555.aaaaaa.........................................
...................................55511555115555555555555555aaaaaaaac........................................
.................................c51111111111155555551555555aaaaaaa1555c......................................
.................................c51111111111111511111111aa888a1111111555.....................................
.................................511111111111111511111a1aa888881111111115c....................................
.................................c51111111111111111aaaaaaa888881111111115c....................................
.................................c511111111111aaaaaaaa1aaa8888811111111115....................................
.................................c5111115aaaaaa5aaaaaaa5511888111551115115....................................
..................................c5a1aaaaa5aaaa5551115551111115555555555c....................................
...................................ca5aaaaaa555555555555555551155115115cc.....................................
..................................cca1aaa55555555555555555555515555555c.......................................
.................................cc.aaa555588815555515555555555555555.cccc....................................
................................c5a1555555888881111555555555555115555555.ccc..................................
...............................aaaaaa5551188888111111555511111111111155151.cc.................................
..............................5aaaaaaaaaaa8888811111551155511111111115558885c.................................
..............................5aa5aaaaaaa5a888aaaaaaa1aa115551111111555888885c................................
.............................511a1aaaa1a1aaaaaa1aaaaaaa1aaaaaaaaa551551888885c................................
.............................511111111a1115555aaaaaaaaaaaaaaaaaaaaaaaaa88888ac................................
.............................51511111111155155551115a1111aa5aaaa1aaaaaaa888aac................................
.............................c5511111111111111555555111111511111111aaa11aaaaac................................
............................cc1511111111111115111111555555551111111111111aaaac................................
............................c.515515111111111111115555555555555555555555555aacc...............................
............................c55555115555111551155555551111115515555555555551a55c.......111111.................
............................5..55555511555555555555511118881111155555555551aaaacc...1115551111111.............
............1111...........c511115111115555555555511111888881111555551a111a5aaa5.c.111111111111111111111......
........111111111111.......511111111111155515555551111188888111a5a555aaaa1aaaaaa55cc111111111111111111111.....
......111111115111111.....c5111111111111555111111aaaaaa88888aaaaaaaaaaaaaaaaaaa1551cc1111111111111111111111...
....11111111111111111115.5c5111111888115551111111aaaaaaa888aa1aaaaaaa111a1aaaa111115c1111111111111111111111...
...11111111111111111111111551111a88888a551111a1aaaaaaaaaaaaaaaaa115aa11111155111111cc11111111111111111111111..
..11111111111111111111111c5aaaaa188888aaaaa11aaaa1a1111155a1a11111151111115555111151c11111111111111111111111..
..11111111111111111111111c55aa1aa88888aaaaaaaaaa155111555511111111151111151111111151c151111111111111111111111.
.1111111111111111151155555ccaa1a1a888aa115aa11a555555555511111111155555151111111151cc111515511111111111111111.
.11111111111111111555111111ccaaaaa111111155115115555555111111111555555555555511151cc11111111111111111111111111
.111111111111111151111111111c15551111115555c555555555555cc111155555555515cc555151cc111151111111111111111111111
.1111111111111111111111111111cc15511115c5555c5cc1111ccccccc1ccccccccccc11111115ccc5111511111111111111111111111
.1111111111111111111111111111111cc111ccccccccccccccccccccccccccccccccccccccc1cccc51111115111111111111111111111
.1111111111111111111111111111132ccccccccccccccccccccccccccccccccccccccccccccccccc11111551111111111111111111111
.11111111111111111111111111112222cccccc322222222cccccc2cccc222232222cccc23ccccccc3111111111111111111111111111.
.111111111111111111111551151322222222232222222222222222222222223222222222222222221311111111111111111111111111.
..11111111111111111111111111131222222222222222222222222222222222222222222222222133111111111111111111111111111.
..1111111111111111111111111111331222222222222222222222222222222222222222222231331111111111111111111111111111..
...111111111111111111111111111113312222222222222222222222222222222222231313133111111111111111111111111111111..
....1111111111111111111111111111113313131313132222222222222222222313131313131111111111111111111111111111111...
.....11111111111111111111111111111113131313131313131313131313131313131311111111111111111111111111111111111....
.....1111111111111111111111111111111111111111113131313131313131311111111111111111111111111111111111111111.....
.....1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111.....
......111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111.....
.......11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111.....
.......1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111......
........111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111......
.........1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111.......
..........1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111.........
............1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111..........
.............1111111111111111111111111111111111111111111111111111111111111111111111111111111111111............
..............11111111111111111111111111111111111111111111111111111111111111111111111111111111111.............
...............1111111111111111111111111111111111111111111111111111111111111111111111111111111................
..................11111111111111111111111111111111111111111111111111111111111111111111111111..................
...................11111111111111111111111111111111111111111111111111111111111111111111111....................
........................111111111111111111111111111111111111111111111111111111111111111.......................
..........................11...111111111111111111111111111111111111111111111111111............................
...................................11111111111111111111111111111111111..1111111...............................
....................................1111111111111111111111..11111111..........................................
......................................1111....1111111.........1111............................................
"""),
SpriteKind.player)
scenery.top = 5
sprites.wrap2(on_wrap2)
def on_wrap3():
global anim
anim = sprites.create(img("""
...............................................................
...............................................................
...............................................................
................................dd.............................
...............................dd2.............................
..............................dd.22............................
..............................d..22............................
..............................dd...............................
...............................6dd.............................
..............................66.d.............................
..............................66..d............................
..................................d222.........................
..................................d.22.........................
..............................ddddd............................
.........................dddddd66..............................
.....................dddd2......66.............................
....................dd...22.....66.............................
..................ddd....22....................................
..................d6...........................................
..................66...........................................
..................66...........................................
..................d............................................
..................dd...........................................
....................dddddddddddd...............................
......................2.....6...dddd...........................
.....................22.....66.....ddd.........................
.....................22.....66......2dddddd....................
....................................22....ddd..................
....................................22......6d.................
...........................................66d.................
...........................................66d.................
............................................d..................
..........................dddd6dddddddddddddd..................
.....................dddddd...66.......2.......................
...................ddd2.......66......22.......................
................dddd..22..............22.......................
.............dddd.....22.......................................
...........ddd..6..............................................
.........dd....66..............................................
........dd.....66..............................................
........d......................................................
........2......................................................
.......22d.....................................................
.......22dd....................................................
..........dd...................................................
...........ddd.................................................
.............d6dddddddd2dddddddddddddddd.......................
.............66........22.......6.......d2ddddddd..............
.............66........22.......66......22.....6dddddd.........
................................66......22.....66....dd........
...............................................66.....d........
......................................................d........
......................................................2........
.....................................................22........
...................................................dd22........
............................................ddd6dddd...........
.................................dddddddddddd.66...............
.......dddd........ddddddd2ddddddd.....2......66...............
........2.dddddd6ddd.....22.......6....22......................
........22......66.......22......66....22......................
........22......66...............66............................
...............................................................
"""),
SpriteKind.player)
anim.bottom = 65
animation.run_image_animation(anim,
[img("""
...............................................................
...............................................................
...............................................................
................................dd.............................
...............................dd2.............................
..............................dd.22............................
..............................d..22............................
..............................dd...............................
...............................6dd.............................
..............................96.d.............................
..............................99..d............................
..................................d222.........................
..................................d.22.........................
..............................ddddd............................
.........................dddddd66..............................
.....................dddd2......69.............................
....................dd...22.....99.............................
..................ddd....22....................................
..................d6...........................................
..................96...........................................
..................99...........................................
..................d............................................
..................dd...........................................
....................dddddddddddd...............................
......................2.....6...dddd...........................
.....................22.....69.....ddd.........................
.....................22.....99......2dddddd....................
....................................22....ddd..................
....................................22......6d.................
...........................................96d.................
...........................................99d.................
............................................d..................
..........................dddd6dddddddddddddd..................
.....................dddddd...69.......2.......................
...................ddd2.......99......22.......................
................dddd..22..............22.......................
.............dddd.....22.......................................
...........ddd..6..............................................
.........dd....96..............................................
........dd.....99..............................................
........d......................................................
........2......................................................
.......22d.....................................................
.......22dd....................................................
..........dd...................................................
...........ddd.................................................
.............d6dddddddd2dddddddddddddddd.......................
.............96........22.......6.......d2ddddddd..............
.............99........22.......69......22.....6dddddd.........
................................99......22.....69....dd........
...............................................99.....d........
......................................................d........
......................................................2........
.....................................................22........
...................................................dd22........
............................................ddd6dddd...........
.................................dddddddddddd.96...............
.......dddd........ddddddd2ddddddd.....2......99...............
........2.dddddd6ddd.....22.......6....22......................
........22......69.......22......96....22......................
........22......99...............99............................
...............................................................
"""),
img("""
...............................................................
...............................................................
...............................................................
................................dd.............................
...............................dd2.............................
..............................dd.23............................
..............................d..33............................
..............................dd...............................
...............................6dd.............................
..............................66.d.............................
..............................66..d............................
..................................d223.........................
..................................d.33.........................
..............................ddddd............................
.........................dddddd66..............................
.....................dddd2......66.............................
....................dd...23.....66.............................
..................ddd....33....................................
..................d6...........................................
..................66...........................................
..................66...........................................
..................d............................................
..................dd...........................................
....................dddddddddddd...............................
......................2.....6...dddd...........................
.....................32.....66.....ddd.........................
.....................33.....66......2dddddd....................
....................................23....ddd..................
....................................33......6d.................
...........................................66d.................
...........................................66d.................
............................................d..................
..........................dddd6dddddddddddddd..................
.....................dddddd...66.......2.......................
...................ddd2.......66......32.......................
................dddd..23..............33.......................
.............dddd.....33.......................................
...........ddd..6..............................................
.........dd....66..............................................
........dd.....66..............................................
........d......................................................
........2......................................................
.......32d.....................................................
.......33dd....................................................
..........dd...................................................
...........ddd.................................................
.............d6dddddddd2dddddddddddddddd.......................
.............66........23.......6.......d2ddddddd..............
.............66........33.......66......32.....6dddddd.........
................................66......33.....66....dd........
...............................................66.....d........
......................................................d........
......................................................2........
.....................................................32........
...................................................dd33........
............................................ddd6dddd...........
.................................dddddddddddd.66...............
.......dddd........ddddddd2ddddddd.....2......66...............
........2.dddddd6ddd.....32.......6....23......................
........23......66.......33......66....33......................
........33......66...............66............................
...............................................................
""")],
200,
True)
sprites.wrap3(on_wrap3)
场景概述
这是一个冬季雪景场景,包含雪地球体、背景雪景和一个动画角色。用户可以通过按下A键触发暴风雪效果和播放圣诞音乐,按下B键显示节日祝福。
核心代码解析
1. 按钮事件处理
A按钮事件 - 暴风雪效果
python
def on_a_pressed():
scene.camera_shake(12, 500) # 相机震动效果
snow.big_short_blizzard(scenery) # 在雪景上创建暴风雪
music.play(music.create_song(assets.song("winter_wonderland")), # 播放圣诞音乐
music.PlaybackMode.IN_BACKGROUND)
按下A键时触发相机震动
在雪景上生成暴风雪效果
在后台播放"Winter Wonderland"音乐
B按钮事件 - 显示祝福
python
def on_b_pressed():
game.show_long_text("Happy Holidays!", DialogLayout.BOTTOM) # 底部显示节日祝福
按下B键时在屏幕底部显示"Happy Holidays!"祝福信息
2. 变量声明和初始化
python
anim: Sprite = None # 动画角色
scenery: Sprite = None # 雪景背景
globe: Sprite = None # 雪地球体
scene.set_background_color(7) # 设置背景颜色为灰色
3. 雪地球体创建
python
def on_wrap1():
global globe
globe = sprites.create(assets.image("snow_box"), SpriteKind.player) # 创建雪地球体
globe.z = 1000 # 设置z轴高度(在最前面显示)
4. 雪景背景创建
python
def on_wrap2():
global scenery
scenery = sprites.create(img("""..."""), SpriteKind.player) # 创建雪景图像
scenery.top = 5 # 设置顶部位置
使用ASCII艺术创建了一个复杂的雪景图像,包含:
雪地、树木、房屋等冬季元素
数字组成的细节(如555、111等表示不同颜色深度)
5. 动画角色创建
python
def on_wrap3():
global anim
anim = sprites.create(img("""..."""), SpriteKind.player) # 创建动画角色
anim.bottom = 65 # 设置底部位置
animation.run_image_animation(anim, # 运行动画
[img("""帧1"""), img("""帧2""")], # 两帧动画
200, # 每200毫秒切换一帧
True) # 循环播放
创建一个动画角色,可能是雪人或圣诞老人
使用两帧动画实现简单的动态效果
设置角色位于屏幕底部
技术特点
多层视觉元素:
背景层:灰色背景
雪景层:复杂的雪地场景
前景层:雪地球体和动画角色
交互效果:
相机震动:增强暴风雪的冲击感
粒子效果:暴风雪模拟
音频反馈:节日音乐播放
动画系统:
使用两帧动画创建简单但有效的动态效果
通过animation.run_image_animation()控制动画播放
资源管理:
使用预定义的图像资源("snow_box")
内联ASCII艺术图像定义
场景元素分析
图形编程参考实验程序

通过模拟器,调试与模拟运行

实验场景记录
评论