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

[项目] 【花雕动手做】基于 Kitronik 可编程开发板之油漆刷子

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

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

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

【花雕动手做】基于 Kitronik 可编程开发板之油漆刷子图2

【花雕动手做】基于 Kitronik 可编程开发板之油漆刷子图1

【花雕动手做】基于 Kitronik 可编程开发板之油漆刷子图3

驴友花雕  中级技神
 楼主|

发表于 2 小时前

【花雕动手做】基于 Kitronik 可编程开发板之油漆刷子

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

MicroPython实验代码

  1. @namespace
  2. class SpriteKind:
  3.     PaintBrush = SpriteKind.create()
  4. ACCELERATION = 500
  5. myPointer = sprites.create(img("""
  6.     f
  7.     """), SpriteKind.player)
  8. mySprite = sprites.create(img("""
  9.         . . . . . . . . . . . . . f f f
  10.         . . . . . . . . . . . . f 2 2 f
  11.         . . . . . . . . . . . f 2 2 2 f
  12.         . . . . . . . . . . f 2 2 2 f .
  13.         . . . . . . . . . f 2 2 2 f . .
  14.         . . . . . . . . f 2 2 2 f . . .
  15.         . . . . . . . f f 2 2 f . . . .
  16.         . . . . . . f 1 1 f f . . . . .
  17.         . . . f f f 1 1 1 f . . . . . .
  18.         . . f e e f 1 1 f . . . . . . .
  19.         . f e e e e f f . . . . . . . .
  20.         . f e e e e e f . . . . . . . .
  21.         . f e e e e e f . . . . . . . .
  22.         . f e e e e f . . . . . . . . .
  23.         f e e e f f . . . . . . . . . .
  24.         f f f f . . . . . . . . . . . .
  25.         """),
  26.     SpriteKind.PaintBrush)
  27. lastX = myPointer.left
  28. lastY = myPointer.bottom
  29. color = 1
  30. large = False
  31. myPointer.set_bounce_on_wall(True)
  32. def on_on_update():
  33.     global lastX, lastY
  34.     background = scene.background_image()
  35.     background.draw_line(lastX, lastY, myPointer.left, myPointer.bottom, color)
  36.     if large:
  37.         background.draw_line(lastX + 1, lastY, myPointer.left, myPointer.bottom, color)
  38.         background.draw_line(lastX, lastY + 1, myPointer.left, myPointer.bottom, color)
  39.         background.draw_line(lastX + 1,
  40.             lastY + 1,
  41.             myPointer.left,
  42.             myPointer.bottom,
  43.             color)
  44.     lastX = myPointer.left
  45.     lastY = myPointer.bottom
  46.     mySprite.left = myPointer.left
  47.     mySprite.bottom = myPointer.bottom
  48. game.on_update(on_on_update)
  49. def on_update_interval():
  50.     global color
  51.     myPointer.ax = randint(0 - ACCELERATION, ACCELERATION)
  52.     myPointer.ay = randint(0 - ACCELERATION, ACCELERATION)
  53.     color = randint(0, 15)
  54. game.on_update_interval(2000, on_update_interval)
  55. def on_a_pressed():
  56.     global large
  57.     large = not large
  58. controller.A.on_event(ControllerButtonEvent.PRESSED, on_a_pressed)
复制代码


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2 小时前

【花雕动手做】基于 Kitronik 可编程开发板之油漆刷子

这段代码是用 MakeCode Arcade 编写的一个名为 “油漆刷子” 的创意绘图程序。它模拟一个自动移动的画笔在屏幕上绘制彩色线条,玩家可以通过按键切换画笔粗细。解读如下:

一、功能概览

【花雕动手做】基于 Kitronik 可编程开发板之油漆刷子图1

二、代码逐段解析
1、精灵初始化
python
  1. class SpriteKind:
  2.     PaintBrush = SpriteKind.create()
  3. ACCELERATION = 500
  4. myPointer = sprites.create(img("f"), SpriteKind.player)
  5. mySprite = sprites.create(img("""..."""), SpriteKind.PaintBrush)
复制代码



创建两个精灵:
myPointer 是一个小点,控制绘图位置
mySprite 是画笔图像,跟随 myPointer 显示在屏幕上
设置 myPointer 为可反弹,防止移出屏幕

2、绘图逻辑(每帧执行)
python
  1. def on_on_update():
  2.     background.draw_line(lastX, lastY, myPointer.left, myPointer.bottom, color)
  3.     if large:
  4.         background.draw_line(lastX + 1, lastY, ...)
  5.         ...
  6.     lastX = myPointer.left
  7.     lastY = myPointer.bottom
  8.     mySprite.left = myPointer.left
  9.     mySprite.bottom = myPointer.bottom
复制代码


使用 draw_line() 在背景图像上绘制线条
如果 large = True,则绘制多条线模拟粗笔效果
更新画笔位置,使图像跟随轨迹移动

3、自动移动与颜色变化(每 2 秒执行)
python
  1. def on_update_interval():
  2.     myPointer.ax = randint(-ACCELERATION, ACCELERATION)
  3.     myPointer.ay = randint(-ACCELERATION, ACCELERATION)
  4.     color = randint(0, 15)
复制代码


随机设置加速度,使画笔自由漂移
随机更换颜色,形成彩色轨迹

4、控制画笔粗细
python
  1. def on_a_pressed():
  2.     large = not large
复制代码


按下 A 键切换 large 状态,实现细笔与粗笔切换


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2 小时前

【花雕动手做】基于 Kitronik 可编程开发板之油漆刷子

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

【花雕动手做】基于 Kitronik 可编程开发板之油漆刷子图2

【花雕动手做】基于 Kitronik 可编程开发板之油漆刷子图1

实验场景记录

【花雕动手做】基于 Kitronik 可编程开发板之油漆刷子图5

【花雕动手做】基于 Kitronik 可编程开发板之油漆刷子图3

【花雕动手做】基于 Kitronik 可编程开发板之油漆刷子图4


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2 小时前

【花雕动手做】基于 Kitronik 可编程开发板之油漆刷子

【花雕动手做】基于 Kitronik 可编程开发板之油漆刷子图1
回复

使用道具 举报

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

本版积分规则

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

硬件清单

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

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

mail