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



作为学习、练习与尝试,这里创建一个躲避桶的小游戏。
打开网页版:https://arcade.makecode.com/,设置项目名称:躲避桶
MicroPython实验参考代码
def on_a_pressed():
if mySprite.is_hitting_tile(CollisionDirection.BOTTOM):
mySprite.vy = -200
controller.A.on_event(ControllerButtonEvent.PRESSED, on_a_pressed)
def on_on_overlap(sprite, otherSprite):
game.over(False)
sprites.on_overlap(SpriteKind.player, SpriteKind.projectile, on_on_overlap)
projectile: Sprite = None
mySprite: Sprite = None
tiles.set_tilemap(tilemap("""
级别1
"""))
mySprite = sprites.create(img("""
. . . . . . 5 . 5 . . . . . . .
. . . . . f 5 5 5 f f . . . . .
. . . . f 1 5 2 5 1 6 f . . . .
. . . f 1 6 6 6 6 6 1 6 f . . .
. . . f 6 6 f f f f 6 1 f . . .
. . . f 6 f f d d f f 6 f . . .
. . f 6 f d f d d f d f 6 f . .
. . f 6 f d 3 d d 3 d f 6 f . .
. . f 6 6 f d d d d f 6 6 f . .
. f 6 6 f 3 f f f f 3 f 6 6 f .
. . f f d 3 5 3 3 5 3 d f f . .
. . f d d f 3 5 5 3 f d d f . .
. . . f f 3 3 3 3 3 3 f f . . .
. . . f 3 3 5 3 3 5 3 3 f . . .
. . . f f f f f f f f f f . . .
. . . . . f f . . f f . . . . .
"""),
SpriteKind.player)
tiles.place_on_tile(mySprite, tiles.get_tile_location(1, 5))
mySprite.ay = 500
def on_update_interval():
global projectile
projectile = sprites.create_projectile_from_side(img("""
1 e e e e e e 1
e e e e e e e e
1 1 1 1 1 1 1 1
e e e e e e e e
e e e e e e e e
1 1 1 1 1 1 1 1
e e e e e e e e
1 e e e e e e 1
"""),
randint(-100, -80),
0)
tiles.place_on_tile(projectile, tiles.get_tile_location(9, 5))
info.change_score_by(1)
game.on_update_interval(2000, on_update_interval)
这是一个躲避类游戏,玩家控制一个角色在平台上跳跃,躲避从右侧飞来的桶。如果被桶击中,游戏结束。
核心代码解析
1. 玩家控制
A按钮事件 - 跳跃
python
def on_a_pressed():
if mySprite.is_hitting_tile(CollisionDirection.BOTTOM):
mySprite.vy = -200 # 设置垂直速度为负值(向上跳跃)
按下A键时,检查玩家是否站在平台上(底部有碰撞)
如果站在平台上,给玩家一个向上的速度(-200)实现跳跃
这是一种简单的跳跃机制,只有在接触地面时才能跳跃
2. 碰撞检测系统
玩家与桶的碰撞
python
def on_on_overlap(sprite, otherSprite):
game.over(False) # 游戏结束,失败状态
当玩家与桶(抛射物)碰撞时,游戏立即结束
使用game.over(False)表示游戏失败
3. 游戏初始化
瓦片地图设置
python
tiles.set_tilemap(tilemap("级别1"))
设置游戏使用的瓦片地图,名为"级别1"
瓦片地图定义了游戏中的平台布局
玩家角色创建
python
mySprite = sprites.create(img("""角色图像"""), SpriteKind.player)
tiles.place_on_tile(mySprite, tiles.get_tile_location(1, 5)) # 放置在位置(1,5)
mySprite.ay = 500 # 设置垂直加速度(重力)
创建玩家角色,使用ASCII艺术定义外观
将玩家放置在瓦片地图的位置(1,5)上
设置垂直加速度为500,模拟重力效果
4. 桶生成系统
python
def on_update_interval():
global projectile
projectile = sprites.create_projectile_from_side(img("""桶图像"""),
randint(-100, -80), # 水平速度(向左)
0) # 垂直速度
tiles.place_on_tile(projectile, tiles.get_tile_location(9, 5)) # 放置在位置(9,5)
info.change_score_by(1) # 得分+1
game.on_update_interval(2000, on_update_interval) # 每2000毫秒生成一个桶
每2秒生成一个新的桶(抛射物)
桶使用ASCII艺术定义外观
桶以随机速度(-100到-80)向左水平移动
桶从屏幕右侧(9,5)的位置出现
每生成一个桶,玩家得分增加1分
游戏机制总结
控制方式:使用A键跳跃,只能在站在平台上时跳跃
躲避目标:躲避从右侧飞来的桶
得分系统:每生成一个桶得1分(生存时间越长得分越高)
失败条件:被桶击中即游戏结束
物理系统:使用重力加速度模拟跳跃物理效果
技术特点
瓦片地图:使用瓦片地图定义游戏场景
物理模拟:通过设置垂直加速度(ay)模拟重力
碰撞检测:使用is_hitting_tile()检测与平台的碰撞
定时生成:使用game.on_update_interval()定时生成敌人
图形编程参考实验程序

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

实验场景记录
评论