17浏览
查看: 17|回复: 4

[项目] 【花雕动手做】基于Kitronik可编程开发板之雪花球贺卡

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

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

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

【花雕动手做】基于Kitronik可编程开发板之雪花球贺卡图1

【花雕动手做】基于Kitronik可编程开发板之雪花球贺卡图2

驴友花雕  中级技神
 楼主|

发表于 昨天 16:46

【花雕动手做】基于Kitronik可编程开发板之雪花球贺卡

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

MicroPython实验参考代码

  1. def on_a_pressed():
  2.     scene.camera_shake(12, 500)
  3.     snow.big_short_blizzard(scenery)
  4.     music.play(music.create_song(assets.song("""
  5.             winter_wonderland
  6.             """)),
  7.         music.PlaybackMode.IN_BACKGROUND)
  8. controller.A.on_event(ControllerButtonEvent.PRESSED, on_a_pressed)
  9. def on_b_pressed():
  10.     game.show_long_text("Happy Holidays!", DialogLayout.BOTTOM)
  11. controller.B.on_event(ControllerButtonEvent.PRESSED, on_b_pressed)
  12. anim: Sprite = None
  13. scenery: Sprite = None
  14. globe: Sprite = None
  15. scene.set_background_color(7)
  16. def on_wrap1():
  17.     global globe
  18.     globe = sprites.create(assets.image("""
  19.         snow_box
  20.         """), SpriteKind.player)
  21.     globe.z = 1000
  22. sprites.wrap1(on_wrap1)
  23. def on_wrap2():
  24.     global scenery
  25.     scenery = sprites.create(img("""
  26.             ..............................................................................................................
  27.             ......................................................cc5.....................................................
  28.             .....................................................c5aa.....................................................
  29.             ....................................................cc5aac....................................................
  30.             ...................................................c151aaac...................................................
  31.             ..................................................c55111aa1c..................................................
  32.             ..................................................c551511aa5c.................................................
  33.             .................................................cc5511111a5c.................................................
  34.             .................................................1c5115111aac.................................................
  35.             ...............................................5555aaaaaaaaac.................................................
  36.             ..............................................5511aaaaaaaaa.cc................................................
  37.             .............................................5151aaaa1a5555555c...............................................
  38.             ............................................5c11aaa1a1555188855c..............................................
  39.             ...........................................c555aa1a111511888885c..............................................
  40.             ..........................................c.c5aaa11111511888885c..............................................
  41.             ..........................................c.caaaa11115555888881c..............................................
  42.             ..........................................c..5aaaa555555558881c...............................................
  43.             .........................................cc..c.5aaaa551551.51c................................................
  44.             ........................................5515555555aaaa5a155cc5555555c.........................................
  45.             .......................................cc1555151151aaaaaaa55555515155c........................................
  46.             .......................................5c11555888111115aaaaaa11111115c........................................
  47.             .......................................511155888881111155aaaa111111115c.......................................
  48.             .......................................c511118888811111115aaaaaaa111155c......................................
  49.             ........................................51111888881111155111a1aaaa1aa5c.......................................
  50.             ........................................511111888111155111111aaaaaaaaa........................................
  51.             .........................................5111111111151555155515aaaaaac........................................
  52.             .......................................ccc555555555511111555555555a5.c........................................
  53.             .....................................c5555.5555555555555555555.aaaaaa.........................................
  54.             ...................................55511555115555555555555555aaaaaaaac........................................
  55.             .................................c51111111111155555551555555aaaaaaa1555c......................................
  56.             .................................c51111111111111511111111aa888a1111111555.....................................
  57.             .................................511111111111111511111a1aa888881111111115c....................................
  58.             .................................c51111111111111111aaaaaaa888881111111115c....................................
  59.             .................................c511111111111aaaaaaaa1aaa8888811111111115....................................
  60.             .................................c5111115aaaaaa5aaaaaaa5511888111551115115....................................
  61.             ..................................c5a1aaaaa5aaaa5551115551111115555555555c....................................
  62.             ...................................ca5aaaaaa555555555555555551155115115cc.....................................
  63.             ..................................cca1aaa55555555555555555555515555555c.......................................
  64.             .................................cc.aaa555588815555515555555555555555.cccc....................................
  65.             ................................c5a1555555888881111555555555555115555555.ccc..................................
  66.             ...............................aaaaaa5551188888111111555511111111111155151.cc.................................
  67.             ..............................5aaaaaaaaaaa8888811111551155511111111115558885c.................................
  68.             ..............................5aa5aaaaaaa5a888aaaaaaa1aa115551111111555888885c................................
  69.             .............................511a1aaaa1a1aaaaaa1aaaaaaa1aaaaaaaaa551551888885c................................
  70.             .............................511111111a1115555aaaaaaaaaaaaaaaaaaaaaaaaa88888ac................................
  71.             .............................51511111111155155551115a1111aa5aaaa1aaaaaaa888aac................................
  72.             .............................c5511111111111111555555111111511111111aaa11aaaaac................................
  73.             ............................cc1511111111111115111111555555551111111111111aaaac................................
  74.             ............................c.515515111111111111115555555555555555555555555aacc...............................
  75.             ............................c55555115555111551155555551111115515555555555551a55c.......111111.................
  76.             ............................5..55555511555555555555511118881111155555555551aaaacc...1115551111111.............
  77.             ............1111...........c511115111115555555555511111888881111555551a111a5aaa5.c.111111111111111111111......
  78.             ........111111111111.......511111111111155515555551111188888111a5a555aaaa1aaaaaa55cc111111111111111111111.....
  79.             ......111111115111111.....c5111111111111555111111aaaaaa88888aaaaaaaaaaaaaaaaaaa1551cc1111111111111111111111...
  80.             ....11111111111111111115.5c5111111888115551111111aaaaaaa888aa1aaaaaaa111a1aaaa111115c1111111111111111111111...
  81.             ...11111111111111111111111551111a88888a551111a1aaaaaaaaaaaaaaaaa115aa11111155111111cc11111111111111111111111..
  82.             ..11111111111111111111111c5aaaaa188888aaaaa11aaaa1a1111155a1a11111151111115555111151c11111111111111111111111..
  83.             ..11111111111111111111111c55aa1aa88888aaaaaaaaaa155111555511111111151111151111111151c151111111111111111111111.
  84.             .1111111111111111151155555ccaa1a1a888aa115aa11a555555555511111111155555151111111151cc111515511111111111111111.
  85.             .11111111111111111555111111ccaaaaa111111155115115555555111111111555555555555511151cc11111111111111111111111111
  86.             .111111111111111151111111111c15551111115555c555555555555cc111155555555515cc555151cc111151111111111111111111111
  87.             .1111111111111111111111111111cc15511115c5555c5cc1111ccccccc1ccccccccccc11111115ccc5111511111111111111111111111
  88.             .1111111111111111111111111111111cc111ccccccccccccccccccccccccccccccccccccccc1cccc51111115111111111111111111111
  89.             .1111111111111111111111111111132ccccccccccccccccccccccccccccccccccccccccccccccccc11111551111111111111111111111
  90.             .11111111111111111111111111112222cccccc322222222cccccc2cccc222232222cccc23ccccccc3111111111111111111111111111.
  91.             .111111111111111111111551151322222222232222222222222222222222223222222222222222221311111111111111111111111111.
  92.             ..11111111111111111111111111131222222222222222222222222222222222222222222222222133111111111111111111111111111.
  93.             ..1111111111111111111111111111331222222222222222222222222222222222222222222231331111111111111111111111111111..
  94.             ...111111111111111111111111111113312222222222222222222222222222222222231313133111111111111111111111111111111..
  95.             ....1111111111111111111111111111113313131313132222222222222222222313131313131111111111111111111111111111111...
  96.             .....11111111111111111111111111111113131313131313131313131313131313131311111111111111111111111111111111111....
  97.             .....1111111111111111111111111111111111111111113131313131313131311111111111111111111111111111111111111111.....
  98.             .....1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111.....
  99.             ......111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111.....
  100.             .......11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111.....
  101.             .......1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111......
  102.             ........111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111......
  103.             .........1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111.......
  104.             ..........1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111.........
  105.             ............1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111..........
  106.             .............1111111111111111111111111111111111111111111111111111111111111111111111111111111111111............
  107.             ..............11111111111111111111111111111111111111111111111111111111111111111111111111111111111.............
  108.             ...............1111111111111111111111111111111111111111111111111111111111111111111111111111111................
  109.             ..................11111111111111111111111111111111111111111111111111111111111111111111111111..................
  110.             ...................11111111111111111111111111111111111111111111111111111111111111111111111....................
  111.             ........................111111111111111111111111111111111111111111111111111111111111111.......................
  112.             ..........................11...111111111111111111111111111111111111111111111111111............................
  113.             ...................................11111111111111111111111111111111111..1111111...............................
  114.             ....................................1111111111111111111111..11111111..........................................
  115.             ......................................1111....1111111.........1111............................................
  116.             """),
  117.         SpriteKind.player)
  118.     scenery.top = 5
  119. sprites.wrap2(on_wrap2)
  120. def on_wrap3():
  121.     global anim
  122.     anim = sprites.create(img("""
  123.             ...............................................................
  124.             ...............................................................
  125.             ...............................................................
  126.             ................................dd.............................
  127.             ...............................dd2.............................
  128.             ..............................dd.22............................
  129.             ..............................d..22............................
  130.             ..............................dd...............................
  131.             ...............................6dd.............................
  132.             ..............................66.d.............................
  133.             ..............................66..d............................
  134.             ..................................d222.........................
  135.             ..................................d.22.........................
  136.             ..............................ddddd............................
  137.             .........................dddddd66..............................
  138.             .....................dddd2......66.............................
  139.             ....................dd...22.....66.............................
  140.             ..................ddd....22....................................
  141.             ..................d6...........................................
  142.             ..................66...........................................
  143.             ..................66...........................................
  144.             ..................d............................................
  145.             ..................dd...........................................
  146.             ....................dddddddddddd...............................
  147.             ......................2.....6...dddd...........................
  148.             .....................22.....66.....ddd.........................
  149.             .....................22.....66......2dddddd....................
  150.             ....................................22....ddd..................
  151.             ....................................22......6d.................
  152.             ...........................................66d.................
  153.             ...........................................66d.................
  154.             ............................................d..................
  155.             ..........................dddd6dddddddddddddd..................
  156.             .....................dddddd...66.......2.......................
  157.             ...................ddd2.......66......22.......................
  158.             ................dddd..22..............22.......................
  159.             .............dddd.....22.......................................
  160.             ...........ddd..6..............................................
  161.             .........dd....66..............................................
  162.             ........dd.....66..............................................
  163.             ........d......................................................
  164.             ........2......................................................
  165.             .......22d.....................................................
  166.             .......22dd....................................................
  167.             ..........dd...................................................
  168.             ...........ddd.................................................
  169.             .............d6dddddddd2dddddddddddddddd.......................
  170.             .............66........22.......6.......d2ddddddd..............
  171.             .............66........22.......66......22.....6dddddd.........
  172.             ................................66......22.....66....dd........
  173.             ...............................................66.....d........
  174.             ......................................................d........
  175.             ......................................................2........
  176.             .....................................................22........
  177.             ...................................................dd22........
  178.             ............................................ddd6dddd...........
  179.             .................................dddddddddddd.66...............
  180.             .......dddd........ddddddd2ddddddd.....2......66...............
  181.             ........2.dddddd6ddd.....22.......6....22......................
  182.             ........22......66.......22......66....22......................
  183.             ........22......66...............66............................
  184.             ...............................................................
  185.             """),
  186.         SpriteKind.player)
  187.     anim.bottom = 65
  188.     animation.run_image_animation(anim,
  189.         [img("""
  190.                 ...............................................................
  191.                 ...............................................................
  192.                 ...............................................................
  193.                 ................................dd.............................
  194.                 ...............................dd2.............................
  195.                 ..............................dd.22............................
  196.                 ..............................d..22............................
  197.                 ..............................dd...............................
  198.                 ...............................6dd.............................
  199.                 ..............................96.d.............................
  200.                 ..............................99..d............................
  201.                 ..................................d222.........................
  202.                 ..................................d.22.........................
  203.                 ..............................ddddd............................
  204.                 .........................dddddd66..............................
  205.                 .....................dddd2......69.............................
  206.                 ....................dd...22.....99.............................
  207.                 ..................ddd....22....................................
  208.                 ..................d6...........................................
  209.                 ..................96...........................................
  210.                 ..................99...........................................
  211.                 ..................d............................................
  212.                 ..................dd...........................................
  213.                 ....................dddddddddddd...............................
  214.                 ......................2.....6...dddd...........................
  215.                 .....................22.....69.....ddd.........................
  216.                 .....................22.....99......2dddddd....................
  217.                 ....................................22....ddd..................
  218.                 ....................................22......6d.................
  219.                 ...........................................96d.................
  220.                 ...........................................99d.................
  221.                 ............................................d..................
  222.                 ..........................dddd6dddddddddddddd..................
  223.                 .....................dddddd...69.......2.......................
  224.                 ...................ddd2.......99......22.......................
  225.                 ................dddd..22..............22.......................
  226.                 .............dddd.....22.......................................
  227.                 ...........ddd..6..............................................
  228.                 .........dd....96..............................................
  229.                 ........dd.....99..............................................
  230.                 ........d......................................................
  231.                 ........2......................................................
  232.                 .......22d.....................................................
  233.                 .......22dd....................................................
  234.                 ..........dd...................................................
  235.                 ...........ddd.................................................
  236.                 .............d6dddddddd2dddddddddddddddd.......................
  237.                 .............96........22.......6.......d2ddddddd..............
  238.                 .............99........22.......69......22.....6dddddd.........
  239.                 ................................99......22.....69....dd........
  240.                 ...............................................99.....d........
  241.                 ......................................................d........
  242.                 ......................................................2........
  243.                 .....................................................22........
  244.                 ...................................................dd22........
  245.                 ............................................ddd6dddd...........
  246.                 .................................dddddddddddd.96...............
  247.                 .......dddd........ddddddd2ddddddd.....2......99...............
  248.                 ........2.dddddd6ddd.....22.......6....22......................
  249.                 ........22......69.......22......96....22......................
  250.                 ........22......99...............99............................
  251.                 ...............................................................
  252.                 """),
  253.             img("""
  254.                 ...............................................................
  255.                 ...............................................................
  256.                 ...............................................................
  257.                 ................................dd.............................
  258.                 ...............................dd2.............................
  259.                 ..............................dd.23............................
  260.                 ..............................d..33............................
  261.                 ..............................dd...............................
  262.                 ...............................6dd.............................
  263.                 ..............................66.d.............................
  264.                 ..............................66..d............................
  265.                 ..................................d223.........................
  266.                 ..................................d.33.........................
  267.                 ..............................ddddd............................
  268.                 .........................dddddd66..............................
  269.                 .....................dddd2......66.............................
  270.                 ....................dd...23.....66.............................
  271.                 ..................ddd....33....................................
  272.                 ..................d6...........................................
  273.                 ..................66...........................................
  274.                 ..................66...........................................
  275.                 ..................d............................................
  276.                 ..................dd...........................................
  277.                 ....................dddddddddddd...............................
  278.                 ......................2.....6...dddd...........................
  279.                 .....................32.....66.....ddd.........................
  280.                 .....................33.....66......2dddddd....................
  281.                 ....................................23....ddd..................
  282.                 ....................................33......6d.................
  283.                 ...........................................66d.................
  284.                 ...........................................66d.................
  285.                 ............................................d..................
  286.                 ..........................dddd6dddddddddddddd..................
  287.                 .....................dddddd...66.......2.......................
  288.                 ...................ddd2.......66......32.......................
  289.                 ................dddd..23..............33.......................
  290.                 .............dddd.....33.......................................
  291.                 ...........ddd..6..............................................
  292.                 .........dd....66..............................................
  293.                 ........dd.....66..............................................
  294.                 ........d......................................................
  295.                 ........2......................................................
  296.                 .......32d.....................................................
  297.                 .......33dd....................................................
  298.                 ..........dd...................................................
  299.                 ...........ddd.................................................
  300.                 .............d6dddddddd2dddddddddddddddd.......................
  301.                 .............66........23.......6.......d2ddddddd..............
  302.                 .............66........33.......66......32.....6dddddd.........
  303.                 ................................66......33.....66....dd........
  304.                 ...............................................66.....d........
  305.                 ......................................................d........
  306.                 ......................................................2........
  307.                 .....................................................32........
  308.                 ...................................................dd33........
  309.                 ............................................ddd6dddd...........
  310.                 .................................dddddddddddd.66...............
  311.                 .......dddd........ddddddd2ddddddd.....2......66...............
  312.                 ........2.dddddd6ddd.....32.......6....23......................
  313.                 ........23......66.......33......66....33......................
  314.                 ........33......66...............66............................
  315.                 ...............................................................
  316.                 """)],
  317.         200,
  318.         True)
  319. sprites.wrap3(on_wrap3)
复制代码


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 昨天 17:02

【花雕动手做】基于Kitronik可编程开发板之雪花球贺卡

本帖最后由 驴友花雕 于 2025-9-3 17:04 编辑

场景概述
这是一个冬季雪景场景,包含雪地球体、背景雪景和一个动画角色。用户可以通过按下A键触发暴风雪效果和播放圣诞音乐,按下B键显示节日祝福。

核心代码解析

1. 按钮事件处理
A按钮事件 - 暴风雪效果
python
  1. def on_a_pressed():
  2.     scene.camera_shake(12, 500)  # 相机震动效果
  3.     snow.big_short_blizzard(scenery)  # 在雪景上创建暴风雪
  4.     music.play(music.create_song(assets.song("winter_wonderland")),  # 播放圣诞音乐
  5.         music.PlaybackMode.IN_BACKGROUND)
复制代码


按下A键时触发相机震动
在雪景上生成暴风雪效果
在后台播放"Winter Wonderland"音乐

B按钮事件 - 显示祝福
python
  1. def on_b_pressed():
  2.     game.show_long_text("Happy Holidays!", DialogLayout.BOTTOM)  # 底部显示节日祝福
复制代码


按下B键时在屏幕底部显示"Happy Holidays!"祝福信息

2. 变量声明和初始化
python
  1. anim: Sprite = None  # 动画角色
  2. scenery: Sprite = None  # 雪景背景
  3. globe: Sprite = None  # 雪地球体
  4. scene.set_background_color(7)  # 设置背景颜色为灰色
复制代码



3. 雪地球体创建
python
  1. def on_wrap1():
  2.     global globe
  3.     globe = sprites.create(assets.image("snow_box"), SpriteKind.player)  # 创建雪地球体
  4.     globe.z = 1000  # 设置z轴高度(在最前面显示)
复制代码



4. 雪景背景创建
python
  1. def on_wrap2():
  2.     global scenery
  3.     scenery = sprites.create(img("""..."""), SpriteKind.player)  # 创建雪景图像
  4.     scenery.top = 5  # 设置顶部位置
复制代码


使用ASCII艺术创建了一个复杂的雪景图像,包含:
雪地、树木、房屋等冬季元素
数字组成的细节(如555、111等表示不同颜色深度)

5. 动画角色创建
python
  1. def on_wrap3():
  2.     global anim
  3.     anim = sprites.create(img("""..."""), SpriteKind.player)  # 创建动画角色
  4.     anim.bottom = 65  # 设置底部位置
  5.     animation.run_image_animation(anim,  # 运行动画
  6.         [img("""帧1"""), img("""帧2""")],  # 两帧动画
  7.         200,  # 每200毫秒切换一帧
  8.         True)  # 循环播放
复制代码


创建一个动画角色,可能是雪人或圣诞老人
使用两帧动画实现简单的动态效果
设置角色位于屏幕底部

技术特点
多层视觉元素:
背景层:灰色背景
雪景层:复杂的雪地场景
前景层:雪地球体和动画角色
交互效果:
相机震动:增***风雪的冲击感
粒子效果:暴风雪模拟
音频反馈:节日音乐播放
动画系统:
使用两帧动画创建简单但有效的动态效果
通过animation.run_image_animation()控制动画播放
资源管理:
使用预定义的图像资源("snow_box")
内联ASCII艺术图像定义
场景元素分析
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 昨天 17:06

【花雕动手做】基于Kitronik可编程开发板之雪花球贺卡

图形编程参考实验程序

【花雕动手做】基于Kitronik可编程开发板之雪花球贺卡图1
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 昨天 17:16

【花雕动手做】基于Kitronik可编程开发板之雪花球贺卡

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

【花雕动手做】基于Kitronik可编程开发板之雪花球贺卡图1

实验场景记录

【花雕动手做】基于Kitronik可编程开发板之雪花球贺卡图2

【花雕动手做】基于Kitronik可编程开发板之雪花球贺卡图3


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4 备案 沪公网安备31011502402448

© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail