11| 4
|
[项目] 【花雕动手做】基于Kitronik可编程开发板之姓名标签游戏 |
Kitronik ARCADE 是一款由英国教育科技公司 Kitronik 精心打造的可编程游戏机开发板,专为编程教学与创客实践而设计。该设备原生支持微软的 MakeCode Arcade 平台,用户可通过图形化或 JavaScript 编程方式,轻松创建、下载并运行复古风格的街机游戏。 它集成了彩色 LCD 显示屏、方向控制键、功能按键、蜂鸣器和震动马达等交互组件,提供完整的游戏输入输出体验。无论是初学者进行编程启蒙,还是创客群体开发交互式作品,Kitronik ARCADE 都能作为理想的硬件载体,助力创意实现。 凭借其开源友好、易于上手、兼容性强等特点,该开发板广泛应用于中小学编程课程、创客工作坊、游戏开发教学以及个人项目原型设计,深受教育者与技术爱好者的喜爱。 ![]() ![]() ![]() |
作为学习、练习与尝试,这里创建一个姓名标签的小游戏。 打开网页版:https://arcade.makecode.com/,设置项目名称:姓名标签 MicroPython实验参考代码
|
ARCADE MakeCode 姓名标签游戏代码解读 这段代码是基于 Microsoft MakeCode Arcade 平台编写的简单交互程序,核心功能是设置游戏场景的背景样式并添加开场特效,为 “姓名标签游戏” 奠定视觉基础。以下从代码结构、核心 API 作用、视觉效果设计逻辑三个维度进行详细解读。 一、代码整体结构 代码共 3 行,遵循 MakeCode Arcade 的 “事件驱动 + 模块化” 设计逻辑,按 “场景初始化→视觉增强” 的顺序执行,属于游戏启动阶段的基础配置代码。 blocks 1. scene.set_background_color(2) // 步骤1:设置背景基础颜色 2. scene.set_background_image(img("""...""")) // 步骤2:设置背景图片(覆盖基础颜色) 3. effects.confetti.start_screen_effect() // 步骤3:启动屏幕特效 二、逐行代码解读 1. 背景颜色设置:scene.set_background_color(2) 功能说明 这行代码用于设置游戏场景的基础背景色,是场景视觉的 “底层配置”。即使后续设置了背景图片,基础颜色仍可能在图片透明区域或加载异常时显示。 关键参数解析 scene:MakeCode Arcade 的 “场景对象”,封装了所有与游戏画面相关的功能(如背景、角色层级、镜头移动等),是控制视觉输出的核心模块。 set_background_color():场景对象的方法,用于设置背景的纯色填充。 2:颜色代码(MakeCode Arcade 的内置颜色值),对应深蓝色(颜色值与效果对应见下表)。 颜色值 对应颜色 适用场景 0 黑色 暗色调场景、夜晚背景 1 蓝色 天空、海洋背景 2 深蓝色 深邃背景、突出前景元素 3 青色 科技感场景、水下背景 4 绿色 草地、森林背景 2. 背景图片设置:scene.set_background_image(img("""...""")) 功能说明 这是代码的核心视觉配置,用于设置一张自定义图片作为背景,图片会覆盖整个游戏屏幕(默认分辨率为 160×128 像素)。代码中img("""...""")是 MakeCode Arcade 的 “图片字面量” 语法,引号内的大量1和少量3是图片的 “像素数据编码”。 像素数据解析 MakeCode Arcade 的图片采用 “ASCII 码映射像素” 的简化编码方式,每一个字符代表一个像素的颜色,字符与颜色的对应关系和set_background_color()的颜色值一致: 1:对应颜色值 1(蓝色),是背景图片的 “主色调像素”,代码中大量连续的1构成了背景的主体区域; 3:对应颜色值 3(青色),是背景图片的 “装饰像素”,少量分散的3构成了类似 “文字、图案” 的细节(结合代码意图,推测是 “姓名标签” 的文字或边框图案)。 实现逻辑 引号内的每一行字符对应图片的一行像素(共 128 行,匹配屏幕高度 128 像素); 每一行的字符数量对应图片的宽度(共 160 个字符,匹配屏幕宽度 160 像素); 程序运行时,会自动将这些字符转换为对应的像素颜色,生成一张 “蓝色底色 + 青色图案” 的背景图,作为姓名标签的视觉载体。 3. 屏幕特效启动:effects.confetti.start_screen_effect() 功能说明 这行代码用于添加开场动画特效,增强游戏的交互感和视觉吸引力,通常在游戏启动、关卡切换或完成任务时使用。 关键参数解析 effects:MakeCode Arcade 的 “特效模块”,内置了烟花、闪烁、碎片、彩虹等多种预设特效,无需手动编写动画逻辑。 confetti:特效类型,中文译为 “彩屑特效”,效果类似 “彩色纸屑从屏幕顶部飘落”,颜色随机且带有轻微闪烁。 start_screen_effect():启动全屏特效的方法,特效会覆盖整个屏幕,持续约 2-3 秒后自动消失(可通过stop_screen_effect()手动停止)。 三、代码设计意图与扩展方向 1. 设计意图 这段代码是 “姓名标签游戏” 的启动页视觉配置,核心目标是: 通过 “深蓝色底色 + 青色图案” 的背景,清晰展示 “姓名标签” 的文字或边框; 用 “彩屑特效” 作为开场动画,提升游戏的趣味性,吸引玩家注意力。 2. 扩展方向(基于姓名标签游戏场景) (1)添加可编辑的姓名文本 通过sprites.create()创建一个文本精灵,让玩家输入姓名并显示在标签上: blocks // 创建文本精灵(显示“我的姓名”) let nameLabel = textsprite.create("我的姓名", 16, 7) nameLabel.x = 80 // 文本位置:屏幕水平中心 nameLabel.y = 60 // 文本位置:屏幕垂直中心 nameLabel.color = 4 // 文本颜色:绿色 (2)添加交互按钮 通过controller.A.onEvent()监听按键,实现 “切换背景色”“重新生成特效” 等交互: blocks // 按A键切换背景色为绿色 controller.A.onEvent(ControllerButtonEvent.Pressed, function () { scene.set_background_color(4) }) (3)替换自定义背景图 在 MakeCode Arcade 的 “图片编辑器” 中绘制一张带姓名的标签图,替换代码中的图片字面量: 点击 MakeCode Arcade 左侧的 “图片” 图标,创建一张 160×128 像素的图片; 用画笔工具绘制姓名标签图案; 右键图片选择 “复制图片字面量”,替换代码中img("""...""")内的内容。 四、总结 这段代码虽然简短,但完整体现了 MakeCode Arcade 的 “低代码可视化” 设计理念: 场景配置:通过scene模块快速设置背景色和背景图,奠定视觉基础; 特效增强:通过effects模块添加预设动画,无需编写复杂的动画逻辑; 可扩展性:基于现有代码,可轻松添加文本、交互、角色等元素,扩展为完整的 “姓名标签生成游戏”。 |
© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed