回到首页 返回首页
回到顶部 回到顶部
返回上一页 返回上一页

【花雕动手做】Kitronik 可编程开发板基于 ARCADE MakeCode 之通关樱桃 简单

头像 驴友花雕 2025.09.10 3 0

Kitronik ARCADE 是一款由英国教育科技公司 Kitronik 精心打造的可编程游戏机开发板,专为编程教学与创客实践而设计。该设备原生支持微软的 MakeCode Arcade 平台,用户可通过图形化或 JavaScript 编程方式,轻松创建、下载并运行复古风格的街机游戏。

它集成了彩色 LCD 显示屏、方向控制键、功能按键、蜂鸣器和震动马达等交互组件,提供完整的游戏输入输出体验。无论是初学者进行编程启蒙,还是创客群体开发交互式作品,Kitronik ARCADE 都能作为理想的硬件载体,助力创意实现。

凭借其开源友好、易于上手、兼容性强等特点,该开发板广泛应用于中小学编程课程、创客工作坊、游戏开发教学以及个人项目原型设计,深受教育者与技术爱好者的喜爱。
 

 

00 (2).jpg
00 (3).jpg
00 (4).jpg

作为学习、练习与尝试,这里创建一个通关樱桃的小游戏。
打开网页版:https://arcade.makecode.com/,设置项目名称:通关樱桃

MicroPython实验参考代码

 

代码
def on_on_overlap(sprite, otherSprite):
    global count, level
    count += 1
    info.change_score_by(1)
    otherSprite.destroy()
    otherSprite.start_effect(effects.smiles, 200)
    if count > 10 + level:
        level += 1
        music.jump_up.play()
        startLevel()
    else:
        music.ba_ding.play()
sprites.on_overlap(SpriteKind.player, SpriteKind.food, on_on_overlap)

def startLevel():
    global count, food
    scene.set_background_color(randint(3, 7))
    count = 0
    index = 0
    while index <= 10 + level:
        food = sprites.create(sprites.food.small_cherries, SpriteKind.food)
        food.set_position(randint(20, 140), randint(20, 100))
        index += 1
    player2.say("Level " + str(level), 1000)
    info.start_countdown(10)
food: Sprite = None
count = 0
player2: Sprite = None
level = 0
game.splash("Hurry!", "通关樱桃!")
level = 1
player2 = sprites.create(sprites.castle.princess_front0, SpriteKind.player)
controller.move_sprite(player2, 70, 70)
startLevel()

这段代码是一个用 MakeCode Arcade 编写的 “通关樱桃”游戏 的核心逻辑。玩家控制角色在限定时间内收集樱桃,达到一定数量后进入下一关。每一关难度逐渐提升,游戏节奏紧凑,适合锻炼反应力与目标感。下面是从专业角度对代码的详细解读:

 

82.jpg

代码逐段解析

1、玩家碰到樱桃(触发收集逻辑)
python
def on_on_overlap(sprite, otherSprite):
   global count, level
   count += 1  # 收集数量+1
   info.change_score_by(1)  # 得分+1
   otherSprite.destroy()  # 销毁樱桃
   otherSprite.start_effect(effects.smiles, 200)  # 显示笑脸特效

2、判断是否通关
python
   if count > 10 + level:
       level += 1  # 进入下一关
       music.jump_up.play()  # 播放通关音效
       startLevel()  # 重置关卡
   else:
       music.ba_ding.play()  # 播放收集音效

3、初始化或进入新关卡
python
def startLevel():
   global count, food
   scene.set_background_color(randint(3, 7))  # 随机背景色
   count = 0  # 重置收集计数
   index = 0

4、生成樱桃
python
   while index <= 10 + level:
       food = sprites.create(sprites.food.small_cherries, SpriteKind.food)
       food.set_position(randint(20, 140), randint(20, 100))  # 随机位置
       index += 1

5、显示关卡提示 + 倒计时
python
   player2.say("Level " + str(level), 1000)  # 显示当前关卡
   info.start_countdown(10)  # 每关限时10秒

6、游戏初始化
python
food: Sprite = None
count = 0
player2: Sprite = None
level = 0
game.splash("Hurry!", "通关樱桃!")  # 开始提示
level = 1
player2 = sprites.create(sprites.castle.princess_front0, SpriteKind.player)  # 创建玩家角色
controller.move_sprite(player2, 70, 70)  # 启用移动控制
startLevel()  # 启动第一关

7、游戏特点总结
逐关挑战:每关需要收集的樱桃数量为 10 + 当前关卡数,难度逐渐提升。
时间限制:每关限时 10 秒,增加紧迫感。
视觉反馈:收集樱桃时有笑脸特效,通关时有音效提示。
动态背景:每关背景颜色随机变化,增强视觉体验。

图形编程参考实验程序

 

81.jpg
 

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

 

00205---.gif

 

实验场景记录

 

83 (1).jpg83 (2).jpg83 (3).jpg
 

评论

user-avatar
icon 他的勋章
    展开更多