芯语教育课程包 · 高校通识版 · 07 · 补充

原生 9S 完整游戏
与教学建议

3D:打飞机 · 贪吃蛇 · 俄罗斯方块 · 躲避陨石 2D:打砖块 · 接水果 · 迷宫寻宝 · 打地鼠 · 扫雷

原生游戏10 个原生模板
4 个 3D + 5 个 2D
+ 待办清单软件
运行方式4D 虚拟机 / 九S虚拟机
独立图形窗口
源码100% 中文 .9s
顶部配置区可改
预览状态五子棋 / 2048
内嵌预览待迁移
设计底线:完整游戏的源码必须是中文 9S,并由芯语虚拟机真实执行。3D 演示由内置 4D 虚拟机渲染立方体、球体、粒子、相机与光照,JavaScript 渲染只能作为“内嵌预览”,不能冒充中文引擎源码。当前已有打飞机、贪吃蛇、俄罗斯方块、躲避陨石四个原生 3D 模板,以及打砖块、接水果、迷宫寻宝、打地鼠、扫雷五个原生 2D 模板;五子棋、2048 明确标注“内嵌预览”。

一、当前模板状态

作品源码 / 运行操作教学定位
打飞机 3D原生 9S `.9s`
4D 虚拟机
← → ↑ ↓ 移动 · 空格开火 · R 重开 · ESC 退出3D 场景、立方体战机、星空、透视网格、粒子爆炸;顶部 13 项配色/速度/镜头配置
贪吃蛇 3D原生 9S `.9s`
4D 虚拟机
方向键转向 · R 重开 · ESC 退出3D 棋盘网格、立方体蛇身、发光食物球、透视相机;配色/移动间隔/相机高度可改
俄罗斯方块 3D原生 9S `.9s`
4D 虚拟机
← → 移动 · ↑ 旋转 · ↓ 加速 · 空格直落 · R 重开 · ESC 退出10×16 立体棋盘、七色立方体、发光当前块、半透明落点投影、右侧 3D 下一块预览
躲避陨石 3D原生 9S `.9s`
4D 虚拟机
方向键 3D 移动 · R 重开 · ESC 退出3D 星空、随机陨石、碰撞扣命、粒子爆炸;速度/生成间隔/生命/镜头可改
打砖块原生 9S `.9s`
九S虚拟机
← → 移动挡板 · R 重开 · ESC 退出挡板反弹、砖块消除、粒子爆炸;七色配色、球速、挡板宽度可改
接水果原生 9S `.9s`
九S虚拟机
← → 移动篮筐 · R 重开 · ESC 退出随机水果与炸弹、连击计分、生命值;篮筐宽度/速度/生成间隔可改
迷宫寻宝原生 9S `.9s`
九S虚拟机
方向键移动 · R 重开 · ESC 退出墙体碰撞、五颗星星、出口解锁;墙色/玩家速度/星星数量可改
打地鼠原生 9S `.9s`
九S虚拟机
方向键选洞 · 空格敲击 · R 重开 · ESC 退出九宫格、随机地鼠/金鼠、倒计时与连击;停留帧/出现间隔/时长可改
扫雷原生 9S `.9s`
九S虚拟机
方向键选格 · 空格翻开 · R 重开 · ESC 退出9×9 棋盘、首击安全、空白扩散、数字提示、胜负判定;雷数可改
待办清单原生 9S `.9s`
九S虚拟机
↑ ↓ 选择 · 空格完成 · R 重置不是游戏,是真实窗口软件:列表、选择、完成状态、自动重绘
五子棋客户端内嵌预览
非原生源码
点击落子 · 人机 / 双人 · 悔棋棋盘与胜负概念体验;原生 9S 源码待迁移
2048客户端内嵌预览
非原生源码
方向键 / WASD 合并数字数组、合并、目标条件体验;原生 9S 源码待迁移
猜数字 / 答题9S 教学子集
代码驱动舞台
数字 / 文本输入变量、输入、条件、循环、单步轨迹

二、原生 9S 源码里能看到什么

三个 3D 模板都是完整的图形程序,而不是“配置 + 客户端渲染”。以俄罗斯方块 3D 为例,源码约 21KB,结构清晰:

顶部配置区方块一色~方块七色、网格颜色、基础下落帧、相机高度/距离、幽灵投影开关,改一行重新运行即可看到变化。
3D 场景与相机创建3D场景、设置3D相机与相机注视、设置3D光源、设置泛光/体积光束、渲染3D场景。
游戏逻辑4×4 形状矩阵、碰撞检测、旋转踢墙、硬降、消行与计分、下一块预览、3D 立方体池。

打飞机 3D 还包含星空循环、粒子爆炸、相机跟随;贪吃蛇 3D 包含棋盘网格、食物随机、相机摆动。三者实测帧率 50–55 fps(800×600、低画质档)。

为什么没有积木视图:原生 9S 源码包含 3D 场景 API、列表、函数与游戏状态机,已超出当前教学积木子集的表达范围。为避免“积木与源码不一致”,原生项目只提供完整源码编辑,不再强行生成假积木。

三、怎么运行原生游戏

  1. 启动芯语创作客户端,打开“示例库”,选择任意原生模板:4 个 3D、5 个 2D 游戏或待办清单。
  2. 工作台左侧显示完整中文源码,顶部就是可改配置区;舞台区域提示“原生 4D 舞台”或“原生 9S 舞台”。
  3. 点击“原生运行”,3D 模板自动使用内置 4D 虚拟机,2D 模板使用九S虚拟机。
  4. 游戏在独立图形窗口中打开,窗口标题即作品名;关闭窗口或点击“停止”结束。
  5. 源码修改后再次运行即可验证;源码可直接导出为 `.9s`。

3D 模板使用 4D 虚拟机,2D/软件模板使用九S虚拟机;两者都是真实执行中文源码,不能用 JavaScript 引擎替代。

四、课堂中的使用方式

课次原有内容加入原生 3D 游戏后的活动
第 7 课实时交互与贪吃蛇打开贪吃蛇 3D,把“移动间隔 = 6”改成 3,对比速度;把蛇身颜色改成紫色,观察同一逻辑的视觉变化。
第 8 课数据结构与俄罗斯方块打开俄罗斯方块 3D,改“方块一色”和“基础下落帧”,再关闭“幽灵投影”,对比落点提示与下落节奏。
第 9 课白箱验证打开打飞机 3D,把“子弹速度 = 55”调到 90、“生成间隔 = 18”改成 8,用帧率与画面变化验证参数作用。
第 10 课调试与改造只改一个常量(颜色、速度、相机距离),保存后启动 4D 窗口验证,记录改造前后截图。
第 11 课表达与分享导出 `.9s`,说明哪些是源码逻辑、哪些是 4D 引擎渲染能力。
拓展五子棋 / 2048先用内嵌预览理解规则;明确告诉学生这不是原生源码,原生迁移后再做源码分析。

五、模型路由与诚实边界

需求系统行为说明
俄罗斯方块 / Tetris载入原生 tetris3d.9sAI 只负责识别需求与命名;源码来自已审核的 3D 模板,由 4D 虚拟机执行。
贪吃蛇载入原生 snake3d.9s同上;移动间隔、配色、相机高度可在源码顶部修改。
打飞机 / 飞机大战载入原生 plane3d.9s同上;13 项配置覆盖配色、速度、火力、生成间隔与镜头。
躲避陨石 / 3D 躲避示例库载入原生模板源码来自已审核的 3D 模板;AI 需求路由暂未接入,先由示例库进入。
打砖块 / 接水果 / 迷宫 / 打地鼠 / 扫雷示例库载入原生 2D 模板由九S虚拟机真实运行完整 `.9s` 源码;AI 需求路由暂未接入。
五子棋 / 2048内嵌预览 + 明确标注当前不是原生 9S 源码;不得向学生宣称已迁移。
象棋 / 围棋 / 国际象棋9S 教学原型原生规则引擎尚未提供;不得声称完整可玩。
其他原创玩法9S 教学原型变量、输入、条件、循环驱动;如需完整图形游戏,应扩充原生 9S 模板库。

六、评价证据

任务证据
运行原生游戏3D/4D 窗口截图或录屏;给出窗口标题、帧率与操作过程。
源码定位指出配置区、创建3D场景、设置按键函数、渲染3D场景与游戏逻辑所在行。
参数改造改一个顶部配置并记录改造前后运行差异(颜色/速度/镜头/特效开关)。
诚实说明能区分“原生 3D 源码”“内嵌预览”“教学原型”三种状态。

七、后续原生模板路线

  1. 本批已完成:打砖块、接水果、迷宫寻宝、打地鼠、扫雷(2D)与躲避陨石 3D,全部用九S/4D虚拟机实跑并截图验收,已接入客户端示例库与官网模板社区。
  2. 五子棋原生 9S:使用鼠标按下、棋盘列表、胜负判断;再做人机启发式。
  3. 2048 原生 9S:使用二维列表、方向键、合并、目标判定。
  4. 象棋原生 9S:完整走子、将军、胜负与 AI,单独作为高阶引擎包。
  5. 模板社区:官网模板社区持续上架学生改造作品,使用同一套 3D 模板规范。
本补充的定位:它是课程包的增量材料。教师应先讲清“原生 3D 源码”和“内嵌预览”的区别,再让学生改顶部配置、读关键函数并用 4D 虚拟机验证。