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):
sprites.destroy(sprite, effects.fire, 100)
info.change_life_by(-1)
sprites.on_overlap(SpriteKind.projectile, SpriteKind.player, on_on_overlap)
def on_on_overlap2(sprite2, otherSprite2):
info.change_score_by(1)
sprites.on_overlap(SpriteKind.projectile, SpriteKind.finish, on_on_overlap2)
def on_button_multiplayer_a_pressed(player2):
mp.get_player_sprite(player2).vy = -200
mp.on_button_event(mp.MultiplayerButton.A,
ControllerButtonEvent.PRESSED,
on_button_multiplayer_a_pressed)
projectile: Sprite = None
playerImages = [assets.image("""
red duck
"""),
assets.image("""
blue duck
"""),
assets.image("""
orange duck
""")]
def on_wrap1():
for index in range(3):
mp.set_player_sprite(mp.get_player_by_index(index),
sprites.create(playerImages[index], SpriteKind.player))
mp.get_player_sprite(mp.get_player_by_index(index)).x = 75 + -30 * index
mp.get_player_sprite(mp.get_player_by_index(index)).ay = 600
mp.get_player_sprite(mp.get_player_by_index(index)).set_stay_in_screen(True)
bundles.wrap1(on_wrap1)
finish = sprites.create(img("""
. . . . . . . f . . . . . . . .
. . . . . . . f . . . . . . . .
. . . . . . . f . . . . . . . .
. . . . . . . f . . . . . . . .
. . . . . . . f . . . . . . . .
. . . . . . . f . . . . . . . .
. . . . . . . f . . . . . . . .
. . . . . . . f . . . . . . . .
. . . . . . . f . . . . . . . .
. . . . . . . f . . . . . . . .
. . . . . . . f . . . . . . . .
. . . . . . . f . . . . . . . .
. . . . . . . f . . . . . . . .
. . . . . . . f . . . . . . . .
. . . . . . . f . . . . . . . .
. . . . . . . f . . . . . . . .
"""),
SpriteKind.finish)
finish.x = 0
info.set_life(10)
def on_update_interval():
global projectile
projectile = sprites.create_projectile_from_side(img("""
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . 4 4 4 4 4 . . . . . .
. . . 4 4 4 5 5 5 d 4 4 4 4 . .
. . 4 d 5 d 5 5 5 d d d 4 4 . .
. . 4 5 5 1 1 1 d d 5 5 5 4 . .
. 4 5 5 5 1 1 1 5 1 1 5 5 4 4 .
. 4 d d 1 1 5 5 5 1 1 5 5 d 4 .
. 4 5 5 1 1 5 1 1 5 5 d d d 4 .
. 2 5 5 5 d 1 1 1 5 1 1 5 5 2 .
. 2 d 5 5 d 1 1 1 5 1 1 5 5 2 .
. . 2 4 d d 5 5 5 5 d d 5 4 . .
. . . 2 2 4 d 5 5 d d 4 4 . . .
. . 2 2 2 2 2 4 4 4 2 2 2 . . .
. . . 2 2 4 4 4 4 4 4 2 2 . . .
. . . . . 2 2 2 2 2 2 . . . . .
"""),
-75,
0)
projectile.y = randint(0, 120)
game.on_update_interval(900, on_update_interval)
图形编程的几个模块
(1)创建三个精灵图像数组,模拟重力的合适位置

(2)设置A键选择跳跃(克服重力)的精灵

(3)发射体0.9秒更新,小范围随机发射

(4)设定终点线和生命值

(5)设置精灵与终点线碰撞,得分+1

(6)精灵与火焰碰撞,生命值-1

(7)炽烈荣耀小游戏的完整程序

(8)通过模拟器,调试与模拟运行

(9)实验场景记录


评论