【花雕动手做】基于 Kitronik 可编程开发板之野餐食物

2025-09-111316
AI 快速预览详细 收起
Kitronik ARCADE是一款专为编程教学与创客实践设计的可编程游戏机开发板,支持微软的MakeCode Arcade平台。用户可以通过图形化或JavaScript编程方式轻松创建、下载并运行复古风格的街机游戏。该开发板集成了彩色LCD显示屏、方向控制键、功能按键、蜂鸣器和震动马达等交互组件,提供完整的游戏输入输出体验。无论是初学者进行编程启蒙,还是创客群体开发交互式作品,Kitronik ARCADE都能作为理想的硬件载体,助力创意实现。
Kitronik ARCADE 是一款由英国教育科技公司 Kitronik 精心打造的可编程游戏机开发板,专为编程教学与创客实践而设计。该设备原生支持微软的 MakeCode Arcade 平台,用户可通过图形化或 JavaScript 编程方式,轻松创建、下载并运行复古风格的街机游戏。

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

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

【花雕动手做】基于 Kitronik 可编程开发板之野餐食物图2

【花雕动手做】基于 Kitronik 可编程开发板之野餐食物图1

【花雕动手做】基于 Kitronik 可编程开发板之野餐食物图3

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(4)
驴友花雕
驴友花雕
作者
通过模拟器,调试与模拟运行

实验场景记录


驴友花雕
驴友花雕
作者
图形编程参考实验程序

驴友花雕
驴友花雕
作者
这段代码是用 MakeCode Arcade 编写的一个名为 “野餐食物” 的小游戏核心逻辑。它展示了两个精灵在屏幕中自由移动,并在彼此碰撞时触发得分和屏幕特效。解读如下:
一、游戏机制概览

二、代码解析
1、创建第一个精灵(食物角色)
python
[code]mySprite = sprites.create(img("""..."""), SpriteKind.player)
mySprite.set_velocity(50, 50)
mySprite.set_position(25, 45)
mySprite.set_bounce_on_wall(True)[/code]
创建一个精灵,图像为像素风格的食物或角色。
设置速度为 (50, 50),表示沿 X 和 Y 方向自动移动。
初始位置为 (25, 45)。
启用边界反弹,精灵碰到屏幕边缘会自动反弹。
2、创建第二个精灵(另一种食物或角色)
python
[code]mySprite2 = sprites.create(img("""..."""), SpriteKind.player)
mySprite2.set_velocity(50, 50)
mySprite2.set_position(120, 80)
mySprite2.set_bounce_on_wall(True)[/code]
同样设置自动移动与反弹。
两个精灵在屏幕中自由漂移,最终可能发生碰撞。
3、碰撞事件:两个精灵相遇
python
[code]def on_on_overlap(sprite, otherSprite):
effects.smiles.start_screen_effect(1000)
info.change_score_by(1)
sprites.on_overlap(SpriteKind.player, SpriteKind.player, on_on_overlap)[/code]
当两个 SpriteKind.player 类型的精灵发生重叠时:
启动笑脸屏幕特效,持续 1000 毫秒。
得分 +1,记录玩家的互动成果。
三、设计意图与玩法推测
这是一个轻量级互动游戏或视觉演示。
两个角色自动移动并在屏幕中碰撞,玩家无需控制。
每次碰撞都带来视觉反馈和得分,适合教学或儿童游戏。
驴友花雕
驴友花雕
作者
作为学习、练习与尝试,这里创建一个野餐食物的小游戏。
打开网页版:https://arcade.makecode.com/,设置项目名称:野餐食物
MicroPython实验参考代码
[code]def on_on_overlap(sprite, otherSprite):
effects.smiles.start_screen_effect(1000)
info.change_score_by(1)
sprites.on_overlap(SpriteKind.player, SpriteKind.player, on_on_overlap)
mySprite = sprites.create(img("""
. . . . . . . . . . . 6 6 6 6 6
. . . . . . . . . 6 6 7 7 7 7 8
. . . . . . 8 8 8 7 7 8 8 6 8 8
. . e e e e c 6 6 8 8 . 8 7 8 .
. e 2 5 4 2 e c 8 . . . 6 7 8 .
e 2 4 2 2 2 2 2 c . . . 6 7 8 .
e 2 2 2 2 2 2 2 c . . . 8 6 8 .
e 2 e e 2 2 2 2 e e e e c 6 8 .
c 2 e e 2 2 2 2 e 2 5 4 2 c 8 .
. c 2 e e e 2 e 2 4 2 2 2 2 c .
. . c 2 2 2 e e 2 2 2 2 2 2 2 e
. . . e c c e c 2 2 2 2 2 2 2 e
. . . . . . . c 2 e e 2 2 e 2 c
. . . . . . . c e e e e e e 2 c
. . . . . . . . c e 2 2 2 2 c .
. . . . . . . . . c c c c c . .
"""),
SpriteKind.player)
mySprite.set_velocity(50, 50)
mySprite.set_position(25, 45)
mySprite.set_bounce_on_wall(True)
mySprite2 = sprites.create(img("""
..........bbbbbb................
.......bbb444444bb..............
.....2244444ddd444b.............
....244444444dddd44e............
...244444444444ddd4be...........
..244444444444444d44be..........
.2b444444444444444d4be..........
.2b44444444444444444bbe.........
2bbb4444444444444444bbe.........
2bbb4444444444444444bbe.........
2bb4b4444444444444444bbe........
2bb4444444444444444444be........
2bb44444444444444444444e........
2bbb444bbb4444444444444e........
22bbb444bb4bb444444444be........
.2bbbbb44bbbb44444444bbe........
.22bbbbbbbb44bbb444444bbe.......
..eeebbbbbbb44bbb444444be.......
...eeeeebbbbbbbb44b4444be.......
.....eeeeee222bb44bbb4bbe.......
.......eeeee222bb44bbbbee.......
............e222bbbbbbbec.......
..............ee2bbbbeebdb......
.................eeeeecdddb.....
.......................cd11bbbb.
........................cd111dbb
.........................b11111c
.........................c11dd1c
.........................cd1dbc.
.........................cb11c..
..........................ccc...
................................
"""),
SpriteKind.player)
mySprite2.set_velocity(50, 50)
mySprite2.set_position(120, 80)
mySprite2.set_bounce_on_wall(True)[/code]
- 没有更多了 -