【花雕动手做】基于 Kitronik 可编程开发板之飞驰的星空

2025-09-111416
AI 快速预览详细 收起
Kitronik ARCADE是一款由英国教育科技公司Kitronik打造的可编程游戏机开发板,专为编程教学与创客实践设计。它支持微软的MakeCode Arcade平台,用户可以通过图形化或JavaScript编程方式轻松创建、下载并运行复古风格的街机游戏。该开发板集成了彩色LCD显示屏、方向控制键、功能按键、蜂鸣器和震动马达等交互组件,提供完整的游戏输入输出体验。无论是初学者进行编程启蒙,还是创客群体开发交互式作品,Kitronik ARCADE都是理想的硬件载体,助力创意实现。
Kitronik ARCADE 是一款由英国教育科技公司 Kitronik 精心打造的可编程游戏机开发板,专为编程教学与创客实践而设计。该设备原生支持微软的 MakeCode Arcade 平台,用户可通过图形化或 JavaScript 编程方式,轻松创建、下载并运行复古风格的街机游戏。

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

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

【花雕动手做】基于 Kitronik 可编程开发板之飞驰的星空图1

【花雕动手做】基于 Kitronik 可编程开发板之飞驰的星空图3

【花雕动手做】基于 Kitronik 可编程开发板之飞驰的星空图2

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(4)
驴友花雕
驴友花雕
作者
通过模拟器,调试与模拟运行

实验场景记录


驴友花雕
驴友花雕
作者
图形编程参考实验程序

驴友花雕
驴友花雕
作者
这段代码是用 MakeCode Arcade 编写的一个名为 “飞驰的星空” 的动态视觉效果逻辑。它模拟了星星从屏幕顶部不断飞驰而下的场景,营造出一种太空穿梭或高速飞行的氛围。解读如下:
一、核心功能概览

二、代码逐段解析
1、初始化变量
python
[code]projectile: Sprite = None[/code]
定义一个全局变量 projectile,用于临时存储每次生成的星星精灵。
2、每帧更新逻辑
python
[code]def on_on_update():
global projectile
if Math.percent_chance(25):
...[/code]
game.on_update(on_on_update)
每帧调用一次 on_on_update(),即每 20 毫秒左右执行一次。
使用 Math.percent_chance(25) 控制星星生成概率,约每 4 帧生成一颗星星。
3、创建星星精灵
python
[code]projectile = sprites.create_projectile_from_side(img("""..."""), 0, randint(20, 30))[/code]
创建一个星星图像的精灵,图像为一个小点(1)。
水平速度为 0,垂直速度为 20~30,表示从顶部垂直飞下。
4、设置位置与属性
python
[code]projectile.set_position(randint(0, scene.screen_width()), 0)
projectile.set_flag(SpriteFlag.GHOST, True)[/code]
将星星随机放置在屏幕顶部的任意 X 坐标。
设置为 GHOST,表示该精灵不会与其他精灵发生碰撞,纯粹用于视觉效果。
三、视觉效果与设计意图
模拟星星从天而降,形成“飞驰的星空”背景。
可用于游戏开场动画、太空飞船背景、或高速移动场景。
星星速度随机,增强动态感与真实感。
驴友花雕
驴友花雕
作者
作为学习、练习与尝试,这里创建一个飞驰星空的小游戏。
打开网页版:https://arcade.makecode.com/,设置项目名称:飞驰的星空
MicroPython实验参考代码
[code]projectile: Sprite = None
def on_on_update():
global projectile
if Math.percent_chance(25):
projectile = sprites.create_projectile_from_side(img("""
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . 1 . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
"""),
0,
randint(20, 30))
projectile.set_position(randint(0, scene.screen_width()), 0)
projectile.set_flag(SpriteFlag.GHOST, True)
game.on_update(on_on_update)[/code]
- 没有更多了 -