20浏览
查看: 20|回复: 3

[项目] 【花雕动手做】基于 Kitronik 可编程开发板之吃水果游戏

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

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

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

【花雕动手做】基于 Kitronik 可编程开发板之吃水果游戏图3

【花雕动手做】基于 Kitronik 可编程开发板之吃水果游戏图1

【花雕动手做】基于 Kitronik 可编程开发板之吃水果游戏图2

驴友花雕  中级技神
 楼主|

发表于 11 小时前

【花雕动手做】基于 Kitronik 可编程开发板之吃水果游戏

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

MicroPython实验参考代码

  1. def on_on_overlap(sprite, otherSprite):
  2.     info.change_life_by(-1)
  3.     scene.camera_shake(4, 500)
  4.     otherSprite.destroy(effects.bubbles)
  5. sprites.on_overlap(SpriteKind.player, SpriteKind.projectile, on_on_overlap)
  6. def on_on_overlap2(sprite2, otherSprite2):
  7.     info.change_score_by(1)
  8.     otherSprite2.destroy()
  9.     sprite2.start_effect(effects.hearts, 100)
  10.     music.ba_ding.play()
  11. sprites.on_overlap(SpriteKind.player, SpriteKind.food, on_on_overlap2)
  12. projectile: Sprite = None
  13. choice = 0
  14. scene.set_background_color(13)
  15. mySprite = sprites.create(img("""
  16.         . . . . . . f f f f . . . . . .
  17.         . . . . f f f 2 2 f f f . . . .
  18.         . . . f f f 2 2 2 2 f f f . . .
  19.         . . f f f e e e e e e f f f . .
  20.         . . f f e 2 2 2 2 2 2 e e f . .
  21.         . . f e 2 f f f f f f 2 e f . .
  22.         . . f f f f e e e e f f f f . .
  23.         . f f e f b f 4 4 f b f e f f .
  24.         . f e e 4 1 f d d f 1 4 e e f .
  25.         . . f e e d d d d d d e e f . .
  26.         . . . f e e 4 4 4 4 e e f . . .
  27.         . . e 4 f 2 2 2 2 2 2 f 4 e . .
  28.         . . 4 d f 2 2 2 2 2 2 f d 4 . .
  29.         . . 4 4 f 4 4 5 5 4 4 f 4 4 . .
  30.         . . . . . f f f f f f . . . . .
  31.         . . . . . f f . . f f . . . . .
  32.         """),
  33.     SpriteKind.player)
  34. controller.move_sprite(mySprite, 100, 100)
  35. mySprite.set_stay_in_screen(True)
  36. info.set_life(5)
  37. def on_update_interval():
  38.     global choice, projectile
  39.     choice = randint(1, 3)
  40.     if choice == 1:
  41.         projectile = sprites.create_projectile_from_side(img("""
  42.                 . . . . . . . . . . b b b . . .
  43.                 . . . . . . . . b e e 3 3 b . .
  44.                 . . . . . . b b e 3 2 e 3 a . .
  45.                 . . . . b b 3 3 e 2 2 e 3 3 a .
  46.                 . . b b 3 3 3 3 3 e e 3 3 3 a .
  47.                 b b 3 3 3 3 3 3 3 3 3 3 3 3 3 a
  48.                 b 3 3 3 d d d d 3 3 3 3 3 d d a
  49.                 b b b b b b b 3 d d d d d d 3 a
  50.                 b d 5 5 5 5 d b b b a a a a a a
  51.                 b 3 d d 5 5 5 5 5 5 5 d d d d a
  52.                 b 3 3 3 3 3 3 d 5 5 5 d d d d a
  53.                 b 3 d 5 5 5 3 3 3 3 3 3 b b b a
  54.                 b b b 3 d 5 5 5 5 5 5 5 d d b a
  55.                 . . . b b b 3 d 5 5 5 5 d d 3 a
  56.                 . . . . . . b b b b 3 d d d b a
  57.                 . . . . . . . . . . b b b a a .
  58.                 """),
  59.             -60,
  60.             0)
  61.     elif choice == 2:
  62.         projectile = sprites.create_projectile_from_side(img("""
  63.                 . . . . . 3 3 b 3 3 d d 3 3 . .
  64.                 . . . . 3 1 1 d 3 d 1 1 1 1 3 .
  65.                 . . . 3 d 1 1 1 d 1 1 1 d 3 1 3
  66.                 . . 3 d d 1 1 1 d d 1 1 1 3 3 3
  67.                 . 3 1 1 d 1 1 1 1 d d 1 1 b . .
  68.                 . 3 1 1 1 d 1 1 1 1 1 d 1 1 3 .
  69.                 . b d 1 1 1 d 1 1 1 1 1 1 1 3 .
  70.                 . 4 b 1 1 1 1 d d 1 1 1 1 d 3 .
  71.                 . 4 4 d 1 1 1 1 1 1 d d d b b .
  72.                 . 4 d b d 1 1 1 1 1 1 1 1 3 . .
  73.                 4 d d 5 b d 1 1 1 1 1 1 1 3 . .
  74.                 4 5 d 5 5 b b d 1 1 1 1 d 3 . .
  75.                 4 5 5 d 5 5 d b b b d d 3 . . .
  76.                 4 5 5 5 d d d d 4 4 b 3 . . . .
  77.                 . 4 5 5 5 4 4 4 . . . . . . . .
  78.                 . . 4 4 4 . . . . . . . . . . .
  79.                 """),
  80.             60,
  81.             0)
  82.     else:
  83.         projectile = sprites.create_projectile_from_side(img("""
  84.                 . . . . . . . 6 . . . . . . . .
  85.                 . . . . . . 8 6 6 . . . 6 8 . .
  86.                 . . . e e e 8 8 6 6 . 6 7 8 . .
  87.                 . . e 2 2 2 2 e 8 6 6 7 6 . . .
  88.                 . e 2 2 4 4 2 7 7 7 7 7 8 6 . .
  89.                 . e 2 4 4 2 6 7 7 7 6 7 6 8 8 .
  90.                 e 2 4 5 2 2 6 7 7 6 2 7 7 6 . .
  91.                 e 2 4 4 2 2 6 7 6 2 2 6 7 7 6 .
  92.                 e 2 4 2 2 2 6 6 2 2 2 e 7 7 6 .
  93.                 e 2 4 2 2 4 2 2 2 4 2 2 e 7 6 .
  94.                 e 2 4 2 2 2 2 2 2 2 2 2 e c 6 .
  95.                 e 2 2 2 2 2 2 2 4 e 2 e e c . .
  96.                 e e 2 e 2 2 4 2 2 e e e c . . .
  97.                 e e e e 2 e 2 2 e e e c . . . .
  98.                 e e e 2 e e c e c c c . . . . .
  99.                 . c c c c c c c . . . . . . . .
  100.                 """),
  101.             55,
  102.             0)
  103.         projectile.set_kind(SpriteKind.food)
  104.     projectile.y = randint(10, 110)
  105. game.on_update_interval(500, on_update_interval)
复制代码


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 10 小时前

【花雕动手做】基于 Kitronik 可编程开发板之吃水果游戏

图形编程参考实验程序

【花雕动手做】基于 Kitronik 可编程开发板之吃水果游戏图1
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 10 小时前

【花雕动手做】基于 Kitronik 可编程开发板之吃水果游戏

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

【花雕动手做】基于 Kitronik 可编程开发板之吃水果游戏图1

实验场景记录

【花雕动手做】基于 Kitronik 可编程开发板之吃水果游戏图3

【花雕动手做】基于 Kitronik 可编程开发板之吃水果游戏图2



回复

使用道具 举报

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

本版积分规则

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

硬件清单

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

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

mail