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



作为学习、练习与尝试,这里创建一个太空驱逐舰的小游戏。
打开网页版:https://arcade.makecode.com/,设置项目名称:太空驱逐舰
MicroPython实验参考代码
def on_a_pressed():
global projectile
projectile = sprites.create_projectile_from_sprite(img("""
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . 7 7 . . .
. . . 7 7 . . .
. . . 7 7 . . .
. . . 7 7 . . .
"""),
ship,
0,
-140)
projectile.start_effect(effects.cool_radial, 100)
controller.A.on_event(ControllerButtonEvent.PRESSED, on_a_pressed)
def on_on_overlap(sprite, otherSprite):
sprite.destroy()
otherSprite.destroy(effects.disintegrate)
info.change_score_by(1)
sprites.on_overlap(SpriteKind.projectile, SpriteKind.enemy, on_on_overlap)
def on_on_overlap2(sprite2, otherSprite2):
scene.camera_shake(4, 500)
otherSprite2.destroy(effects.disintegrate)
sprite2.start_effect(effects.fire, 200)
info.change_life_by(-1)
sprites.on_overlap(SpriteKind.player, SpriteKind.enemy, on_on_overlap2)
projectile: Sprite = None
ship: Sprite = None
asteroids = [sprites.space.space_small_asteroid1,
sprites.space.space_small_asteroid0,
sprites.space.space_asteroid0,
sprites.space.space_asteroid1,
sprites.space.space_asteroid4,
sprites.space.space_asteroid3]
ship = sprites.create(sprites.space.space_red_ship, SpriteKind.player)
ship.set_stay_in_screen(True)
ship.bottom = 120
controller.move_sprite(ship, 100, 100)
info.set_life(3)
effects.star_field.start_screen_effect()
def on_update_interval():
global projectile
projectile = sprites.create_projectile_from_side(asteroids[randint(0, len(asteroids) - 1)], 0, 75)
projectile.set_kind(SpriteKind.enemy)
projectile.x = randint(10, 150)
game.on_update_interval(500, on_update_interval)
这段代码是用 MakeCode Arcade 编写的一个 太空驱逐舰射击游戏 的核心逻辑。玩家控制一艘太空战舰,在星空背景下移动并发射子弹,击毁飞来的小行星(敌人),同时避免与它们碰撞。代码逐段解析
1、按下 A 键发射子弹
python
def on_a_pressed():
global projectile
projectile = sprites.create_projectile_from_sprite(img("""..."""), ship, 0, -140)
projectile.start_effect(effects.cool_radial, 100)
controller.A.on_event(ControllerButtonEvent.PRESSED, on_a_pressed)
创建一个子弹,从玩家战舰发射,速度为 -140(向上)。
添加一个炫酷的径向特效。
2、子弹击中敌人(得分)
python
def on_on_overlap(sprite, otherSprite):
sprite.destroy() # 销毁子弹
otherSprite.destroy(effects.disintegrate) # 敌人爆炸特效
info.change_score_by(1) # 得分+1
sprites.on_overlap(SpriteKind.projectile, SpriteKind.enemy, on_on_overlap)
3、玩家碰到敌人(扣血)
python
def on_on_overlap2(sprite2, otherSprite2):
scene.camera_shake(4, 500) # 屏幕震动
otherSprite2.destroy(effects.disintegrate) # 敌人爆炸
sprite2.start_effect(effects.fire, 200) # 玩家着火特效
info.change_life_by(-1) # 扣除1点生命
sprites.on_overlap(SpriteKind.player, SpriteKind.enemy, on_on_overlap2)
5、创建玩家战舰
python
ship = sprites.create(sprites.space.space_red_ship, SpriteKind.player)
ship.set_stay_in_screen(True) # 限制在屏幕内
ship.bottom = 120 # 初始位置靠近底部
controller.move_sprite(ship, 100, 100) # 启用移动控制
info.set_life(3) # 设置生命值为3
6、设置星空背景
python
effects.star_field.start_screen_effect()
添加动态星空背景,营造太空氛围。
7、每隔0.5秒生成一个敌人
python
def on_update_interval():
global projectile
projectile = sprites.create_projectile_from_side(asteroids[randint(0, len(asteroids) - 1)], 0, 75)
projectile.set_kind(SpriteKind.enemy)
projectile.x = randint(10, 150)
game.on_update_interval(500, on_update_interval)
随机从小行星列表中选择一个图像。
从屏幕顶部以速度 75 向下飞来。
随机设置 X 坐标,制造不确定性。
图形编程参考实验程序

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

实验场景记录



评论