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

[项目] 【花雕动手做】基于 Kitronik 可编程开发板之玩家接方块

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

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

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

【花雕动手做】基于 Kitronik 可编程开发板之玩家接方块图1

【花雕动手做】基于 Kitronik 可编程开发板之玩家接方块图2

驴友花雕  中级技神
 楼主|

发表于 1 小时前

【花雕动手做】基于 Kitronik 可编程开发板之玩家接方块

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

MicroPython实验代码

  1. box: Sprite = None
  2. box_img: Image = None
  3. color = 0
  4. scene.set_background_color(9)
  5. info.set_score(0)
  6. # 创建玩家角色精灵(注意变量名改为 hero)
  7. hero_img = image.create(16, 4)
  8. hero_img.fill(1)
  9. hero = sprites.create(hero_img, 0)
  10. hero.set_position(80, 110)
  11. controller.move_sprite(hero, 100, 0)
  12. # 创建掉落方块
  13. # 每秒生成一个方块
  14. def on_update_interval():
  15.     global color, box_img, box
  16.     color = randint(2, 15)
  17.     box_img = image.create(10, 10)
  18.     box_img.fill(color)
  19.     box = sprites.create(box_img, 0)
  20.     box.set_position(randint(0, 150), 0)
  21.     box.set_velocity(0, 40)
  22.    
  23.     def update():
  24.         if box.overlaps_with(hero):
  25.             box.destroy(effects.confetti, 100)
  26.             info.change_score_by(1)
  27.         elif box.y > 120:
  28.             box.destroy()
  29.             info.change_score_by(-1)
  30.     game.on_update(update)
  31.    
  32. game.on_update_interval(1000, on_update_interval)
复制代码


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 1 小时前

【花雕动手做】基于 Kitronik 可编程开发板之玩家接方块

代码逐行解读
python
  1. scene.set_background_color(9)
复制代码

设置游戏背景颜色为编号 9,通常是青绿色。你可以换成其他编号试试不同风格。

python
  1. info.set_score(0)
复制代码

初始化分数为 0。每次接住方块就加分,错过就扣分。

python
  1. hero_img = image.create(16, 4)
  2. hero_img.fill(1)
复制代码

创建一个 16×4 像素的图像作为玩家角色的外观

fill(1) 表示用颜色编号 1(通常是白色)填满这个图像

python
  1. hero = sprites.create(hero_img)
复制代码

创建一个精灵对象,使用刚才的图像作为外观

变量名用 hero,避免使用系统保留名 player,防止报错

python
  1. hero.set_position(80, 110)
复制代码

设置玩家角色的位置:

x = 80 表示水平居中

y = 110 表示靠近屏幕底部

python
  1. controller.move_sprite(hero, 100, 0)
复制代码

让玩家可以控制角色左右移动

100 是移动速度

0 表示垂直方向不允许移动(只能左右)

python
  1. def create_box():
复制代码

定义一个函数,每次调用它就会生成一个掉落方块

python
  1.     color = randint(2, 15)
复制代码

随机生成一个颜色编号,范围是 2 到 15,避开黑色和白色,让方块更鲜艳

python
  1.     box_img = image.create(10, 10)
  2.     box_img.fill(color)
复制代码

创建一个 10×10 的图像,并用随机颜色填满,作为方块的外观

python
  1.     box = sprites.create(box_img)
复制代码

创建一个精灵对象,使用刚才的图像作为外观

python
  1.     box.set_position(randint(0, 150), 0)
复制代码

设置方块的位置:

x 是随机的,范围在屏幕宽度内

y = 0 表示从屏幕顶部开始掉落

python
  1.     box.set_velocity(0, 40)
复制代码

设置方块的速度:

x = 0 表示不左右移动

y = 40 表示垂直向下掉落

python
  1.     def update():
复制代码

定义一个内部函数,每帧检查这个方块的状态(是否碰到玩家或掉出屏幕)

python
  1.         if box.overlaps_with(hero):
  2.             box.destroy(effects.confetti, 100)
  3.             info.change_score_by(1)
复制代码

如果方块碰到玩家角色:

销毁方块并播放彩色粒子特效

分数加 1

python
  1.         elif box.y > 120:
  2.             box.destroy()
  3.             info.change_score_by(-1)
复制代码

如果方块掉出屏幕底部:

销毁方块

分数减 1

python
  1.     game.on_update(update)
复制代码

每帧调用 update(),持续检查这个方块的状态

python
  1. game.on_update_interval(1000, create_box)
复制代码

每隔 1000 毫秒(1秒)调用一次 create_box(),不断生成新的方块

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 1 小时前

【花雕动手做】基于 Kitronik 可编程开发板之玩家接方块

图形编程参考实验程序

【花雕动手做】基于 Kitronik 可编程开发板之玩家接方块图1

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

【花雕动手做】基于 Kitronik 可编程开发板之玩家接方块图2

【花雕动手做】基于 Kitronik 可编程开发板之玩家接方块图3

实验场景记录

【花雕动手做】基于 Kitronik 可编程开发板之玩家接方块图4

【花雕动手做】基于 Kitronik 可编程开发板之玩家接方块图5


回复

使用道具 举报

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

本版积分规则

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

硬件清单

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

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

mail