【花雕动手做】基于 Kitronik 可编程开发板之飞行汽车

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

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

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

【花雕动手做】基于 Kitronik 可编程开发板之飞行汽车图3

【花雕动手做】基于 Kitronik 可编程开发板之飞行汽车图1

【花雕动手做】基于 Kitronik 可编程开发板之飞行汽车图2

创作许可协议

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

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

实验场景记录


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

驴友花雕
驴友花雕
作者
这段代码是用 MakeCode Arcade 编写的一个 “飞行汽车”游戏 的核心逻辑片段。它展示了如何在游戏中周期性地生成飞行汽车图像,并让它们从屏幕左侧向右移动。下面是从专业角度对这段代码的详细解读:
一、核心功能概述
定时生成飞行汽车:每隔 1000 毫秒(1 秒)创建一个新的飞行汽车精灵。
水平移动:飞行汽车以固定速度沿 X 轴向右飞行。
垂直位置随机化:每辆车的 Y 坐标在屏幕高度范围内随机生成,制造动态感。
二、代码逐行解析
1、初始化变量
python
[code]projectile: Sprite = None[/code]
定义一个全局变量 projectile,用于存储当前生成的飞行汽车精灵。
2、定时器函数:每秒生成一辆飞行汽车
python
[code]def on_update_interval():
global projectile[/code]
定义一个函数 on_update_interval(),每秒执行一次。
3、创建飞行汽车精灵
python
[code] projectile = sprites.create_projectile_from_side(img("""..."""), 50, 0)[/code]
使用 sprites.create_projectile_from_side() 创建一个从左侧飞入的精灵。
img("""...""") 是飞行汽车的像素图形。
50 是水平速度(向右),0 是垂直速度(不上下移动)。
4、设置垂直位置
python
[code] projectile.y = randint(0, scene.screen_height())[/code]
将飞行汽车的 Y 坐标设置为屏幕高度范围内的随机值,使每辆车出现在不同高度。
5、注册定时器
python
[code]game.on_update_interval(1000, on_update_interval)[/code]
每隔 1000 毫秒(即 1 秒)调用一次 on_update_interval(),持续生成飞行汽车。
驴友花雕
驴友花雕
作者
作为学习、练习与尝试,这里创建一个飞行汽车的小游戏。
打开网页版:https://arcade.makecode.com/,设置项目名称:飞行汽车
MicroPython实验参考代码
[code]projectile: Sprite = None
def on_update_interval():
global projectile
projectile = sprites.create_projectile_from_side(img("""
. . . . . . . . . . . . . . . .
. . . . 2 2 2 2 2 2 2 2 . . . .
. . . 2 4 2 2 2 2 2 2 c 2 . . .
. . 2 c 4 2 2 2 2 2 2 c c 2 . .
. 2 c c 4 4 4 4 4 4 2 c c 4 2 d
. 2 c 2 e e e e e e e b c 4 2 2
. 2 2 e b b e b b b e e b 4 2 2
. 2 e b b b e b b b b e 2 2 2 2
. e e 2 2 2 e 2 2 2 2 2 e 2 2 2
. e e e e e e f e e e f e 2 d d
. e e e e e e f e e f e e e 2 d
. e e e e e e f f f e e e e e e
. e f f f f e e e e f f f e e e
. . f f f f f e e f f f f f e .
. . . f f f . . . . f f f f . .
. . . . . . . . . . . . . . . .
"""),
50,
0)
projectile.y = randint(0, scene.screen_height())
game.on_update_interval(1000, on_update_interval)[/code]
- 没有更多了 -