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

[项目] 【花雕动手做】基于Kitronik可编程开发板之柠檬和草莓

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

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

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

【花雕动手做】基于Kitronik可编程开发板之柠檬和草莓图2

【花雕动手做】基于Kitronik可编程开发板之柠檬和草莓图1


【花雕动手做】基于Kitronik可编程开发板之柠檬和草莓图3

驴友花雕  中级技神
 楼主|

发表于 昨天 20:19

【花雕动手做】基于Kitronik可编程开发板之柠檬和草莓

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

MicroPython实验参考代码

  1. def on_on_overlap(sprite, otherSprite):
  2.     mySprite.start_effect(effects.spray, 200)
  3.     info.change_score_by(1)
  4. sprites.on_overlap(SpriteKind.player, SpriteKind.projectile, on_on_overlap)
  5. projectile: Sprite = None
  6. mySprite: Sprite = None
  7. scene.set_background_color(10)
  8. mySprite = sprites.create(img("""
  9.         4 4 4 . . 4 4 4 4 4 . . . . . .
  10.         4 5 5 4 4 5 5 5 5 5 4 4 . . . .
  11.         b 4 5 5 1 5 1 1 1 5 5 5 4 . . .
  12.         . b 5 5 5 5 1 1 5 5 1 1 5 4 . .
  13.         . b d 5 5 5 5 5 5 5 5 1 1 5 4 .
  14.         b 4 5 5 5 5 5 5 5 5 5 5 1 5 4 .
  15.         c d 5 5 5 5 5 5 5 5 5 5 5 5 5 4
  16.         c d 4 5 5 5 5 5 5 5 5 5 5 1 5 4
  17.         c 4 5 5 5 d 5 5 5 5 5 5 5 5 5 4
  18.         c 4 d 5 4 5 d 5 5 5 5 5 5 5 5 4
  19.         . c 4 5 5 5 5 d d d 5 5 5 5 5 b
  20.         . c 4 d 5 4 5 d 4 4 d 5 5 5 4 c
  21.         . . c 4 4 d 4 4 4 4 4 d d 5 d c
  22.         . . . c 4 4 4 4 4 4 4 4 5 5 5 4
  23.         . . . . c c b 4 4 4 b b 4 5 4 4
  24.         . . . . . . c c c c c c b b 4 .
  25.         """),
  26.     SpriteKind.player)
  27. controller.move_sprite(mySprite)
  28. mySprite.set_stay_in_screen(True)
  29. info.start_countdown(30)
  30. def on_update_interval():
  31.     global projectile
  32.     projectile = sprites.create_projectile_from_side(img("""
  33.             . . . . . . . 6 . . . . . . . .
  34.             . . . . . . 8 6 6 . . . 6 8 . .
  35.             . . . e e e 8 8 6 6 . 6 7 8 . .
  36.             . . e 2 2 2 2 e 8 6 6 7 6 . . .
  37.             . e 2 2 4 4 2 7 7 7 7 7 8 6 . .
  38.             . e 2 4 4 2 6 7 7 7 6 7 6 8 8 .
  39.             e 2 4 5 2 2 6 7 7 6 2 7 7 6 . .
  40.             e 2 4 4 2 2 6 7 6 2 2 6 7 7 6 .
  41.             e 2 4 2 2 2 6 6 2 2 2 e 7 7 6 .
  42.             e 2 4 2 2 4 2 2 2 4 2 2 e 7 6 .
  43.             e 2 4 2 2 2 2 2 2 2 2 2 e c 6 .
  44.             e 2 2 2 2 2 2 2 4 e 2 e e c . .
  45.             e e 2 e 2 2 4 2 2 e e e c . . .
  46.             e e e e 2 e 2 2 e e e c . . . .
  47.             e e e 2 e e c e c c c . . . . .
  48.             . c c c c c c c . . . . . . . .
  49.             """),
  50.         randint(-50, 50),
  51.         randint(-50, 50))
  52. game.on_update_interval(500, on_update_interval)
复制代码


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 昨天 20:26

【花雕动手做】基于Kitronik可编程开发板之柠檬和草莓

代码解读

这段代码是一个用 MakeCode Arcade 编写的 草莓躲避类小游戏,玩家控制一个柠檬在屏幕中移动,尽可能多地接触飞来的“草莓”,以获得分数。下面是逐行解读,带你快速掌握它的机制和设计思路:

1、玩家控制与初始化
python
  1. scene.set_background_color(10)
复制代码

设置背景颜色为编号 10(通常是紫色或深蓝色),营造游戏氛围。

python
  1. mySprite = sprites.create(img("""..."""), SpriteKind.player)
  2. controller.move_sprite(mySprite)
  3. mySprite.set_stay_in_screen(True)
复制代码

创建玩家角色 mySprite,图像是一个像素风格的角色(柠檬)。

玩家可以用方向键控制角色移动。

set_stay_in_screen(True) 确保角色不会移出屏幕边界。

2、倒计时机制
python
  1. info.start_countdown(30)
复制代码

游戏限时 30 秒。

倒计时结束后,游戏自动结束(胜负逻辑未在此代码中定义,但通常会触发 game.over())。

3、碰撞检测与得分
python
  1. def on_on_overlap(sprite, otherSprite):
  2.     mySprite.start_effect(effects.spray, 200)
  3.     info.change_score_by(1)
  4. sprites.on_overlap(SpriteKind.player, SpriteKind.projectile, on_on_overlap)
复制代码

当玩家柠檬角色与草莓(SpriteKind.projectile)发生碰撞时:

播放喷洒粒子效果,持续 200 毫秒。

玩家得分 +1。

这与传统弹幕游戏不同:不是躲避,而是主动接触草莓来得分。

4、草莓生成逻辑
python
  1. def on_update_interval():
  2.     global projectile
  3.     projectile = sprites.create_projectile_from_side(img("""..."""), randint(-50, 50), randint(-50, 50))
复制代码

每隔 500 毫秒(0.5 秒)生成一个草莓。

草莓图像是一个复杂的像素图。

草莓的速度是随机的:

水平速度 vx:-50 到 50

垂直速度 vy:-50 到 50

草莓从屏幕边缘发射,方向随机,制造混乱感。


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 昨天 20:27

【花雕动手做】基于Kitronik可编程开发板之柠檬和草莓

图形编程参考实验程序

【花雕动手做】基于Kitronik可编程开发板之柠檬和草莓图1
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 昨天 20:37

【花雕动手做】基于Kitronik可编程开发板之柠檬和草莓

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

【花雕动手做】基于Kitronik可编程开发板之柠檬和草莓图1

实验场景记录

【花雕动手做】基于Kitronik可编程开发板之柠檬和草莓图2

【花雕动手做】基于Kitronik可编程开发板之柠檬和草莓图4

【花雕动手做】基于Kitronik可编程开发板之柠檬和草莓图3


回复

使用道具 举报

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

本版积分规则

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

硬件清单

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

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

mail