驴友花雕 发表于 2025-9-22 20:15:53

【花雕动手做】基于Kitronik可编程开发板之迷宫游戏



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

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

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



驴友花雕 发表于 2025-9-22 20:19:39

【花雕动手做】基于Kitronik可编程开发板之迷宫游戏

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

MicroPython实验代码

def on_on_overlap(sprite, otherSprite):
    music.play(music.melody_playable(music.power_up),
      music.PlaybackMode.UNTIL_DONE)
    effects.confetti.start_screen_effect(1000)
    pause(1000)
    game.show_long_text("恭喜走出迷宫!", DialogLayout.CENTER)
sprites.on_overlap(SpriteKind.player, SpriteKind.projectile, on_on_overlap)

game.splash("迷宫游戏", "路人甲")
tiles.set_current_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, 30))
controller.move_sprite(mySprite)
mySprite.set_stay_in_screen(True)
scene.camera_follow_sprite(mySprite)
mySprite2 = sprites.create(img("""
      . . . . . . . . . . . . . . . .
      . . . . . . . . . . . . . . . .
      . . . . . . . . . . . . . . . .
      . . . . f 2 2 2 2 2 2 2 2 . . .
      . . . . f 2 2 2 2 2 2 2 2 . . .
      . . . . f 2 2 2 2 2 2 2 2 . . .
      . . . . f 2 2 2 2 2 2 2 2 . . .
      . . . . f 2 2 2 2 2 2 2 2 . . .
      . . . . f 2 2 2 2 2 2 2 2 . . .
      . . . . f 2 2 2 2 2 2 2 2 . . .
      . . . . f . . . . . . . . . . .
      . . . . f . . . . . . . . . . .
      . . . . f . . . . . . . . . . .
      . . . . . . . . . . . . . . . .
      . . . . . . . . . . . . . . . .
      . . . . . . . . . . . . . . . .
      """),
    SpriteKind.projectile)
tiles.place_on_tile(mySprite2, tiles.get_tile_location(15, 14))
info.start_countdown(30)


驴友花雕 发表于 2025-9-22 20:23:38

【花雕动手做】基于Kitronik可编程开发板之迷宫游戏

这段 Arcade MakeCode 的迷宫游戏代码是一个完整的小游戏框架,代码解读与说明如下:

1、游戏目标
玩家控制角色在迷宫中移动,30秒内找到目标(projectile 精灵),触发胜利事件。

2、游戏初始化
python
game.splash("迷宫游戏", "路人甲")
显示游戏标题和作者名。

python
tiles.set_current_tilemap(tilemap("""级别1"""))
设置当前地图为“级别1”,地图需在编辑器中预先定义。

3、玩家角色设置
python
mySprite = sprites.create(img("""..."""), SpriteKind.player)

tiles.place_on_tile(mySprite, tiles.get_tile_location(1, 30))

controller.move_sprite(mySprite)

mySprite.set_stay_in_screen(True)

scene.camera_follow_sprite(mySprite)
创建玩家角色并赋予图像。
将角色放置在地图的起始位置 (1, 30)。
启用控制器移动角色。
限制角色不离开屏幕。
摄像机跟随角色移动。

4、目标精灵设置
python
mySprite2 = sprites.create(img("""..."""), SpriteKind.projectile)

tiles.place_on_tile(mySprite2, tiles.get_tile_location(15, 14))
创建目标精灵(可理解为迷宫出口或奖励点)。
放置在地图中的某个位置 (15, 14)。

5、倒计时机制
python
info.start_countdown(30)
游戏开始后启动30秒倒计时,增加紧迫感。

6、胜利事件处理
python
def on_on_overlap(sprite, otherSprite):

    music.play(music.melody_playable(music.power_up), music.PlaybackMode.UNTIL_DONE)

    effects.confetti.start_screen_effect(1000)

    pause(1000)

    game.show_long_text("恭喜走出迷宫!", DialogLayout.CENTER)



sprites.on_overlap(SpriteKind.player, SpriteKind.projectile, on_on_overlap)
当玩家角色与目标精灵重叠时触发:
播放胜利音乐。
屏幕出现彩带特效。
暂停1秒。
显示“恭喜走出迷宫!”的提示框。

驴友花雕 发表于 2025-9-22 20:29:16

【花雕动手做】基于Kitronik可编程开发板之迷宫游戏

图形编程参考实验程序



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



实验场景记录







驴友花雕 发表于 2025-9-23 09:15:44

【花雕动手做】基于Kitronik可编程开发板之迷宫游戏


页: [1]
查看完整版本: 【花雕动手做】基于Kitronik可编程开发板之迷宫游戏