资讯详情

用Pyrite64节点图(N64 Node Graph)做游戏逻辑:从Start到Load Scene完整示例

📅 2026/9/18 2:42:01 | 华诺云谱 👁 阅读
用Pyrite64节点图(N64 Node Graph)做游戏逻辑:从Start到Load Scene完整示例
用Pyrite64节点图(N64 Node Graph)做游戏逻辑从Start到Load Scene完整示例【免费下载链接】pyrite64N64 Game-Engine and Editor using libdragon tiny3d项目地址: https://gitcode.com/GitHub_Trending/py/pyrite64在 N64 游戏引擎 Pyrite64 中Pyrite64 节点图Node Graph是一种可视化脚本工具你不需要写 C只需把一个个节点拖到画布上、用线连起来就能描述游戏对象的行为逻辑。编辑器会在构建时把节点图自动转译成原生 C 代码运行因此性能与手写代码完全一致。本文以从 Start 开始等待、判断、最后 Load Scene 切换场景这条最经典的逻辑链为主线带你从零完整跑通一个 Pyrite64 节点图。什么是 Pyrite64 节点图比写代码更直观的游戏逻辑工具 节点图是 Pyrite64 中三种脚本方式的第三种另外两种是对象脚本 Object Script 和全局脚本 Global Script它定位不是通用编程语言而是编排事件序列的利器。官方文档里给出的典型例子就是打开一个文本框等待玩家响应并分支等待 5 秒加载一个新场景由于底层采用基于栈的协程coroutine节点图里的Wait/Wait Frame等待事件时不会阻塞游戏主循环——这正是用节点图做计时器 分支式逻辑的核心优势。完整介绍见 docs/docs/manual/script/intro.md。创建节点图三步走给对象添加 Node Graph 组件节点图通过Node Graph 组件挂载到场景对象上创建流程只需三步选中目标对象添加Node Graph组件点击Create为图资产graph asset命名——注意这是一个独立资产同一个图可以复用在任意多个对象上点击Edit在节点图编辑器中打开它开始连线。组件面板包含三个关键选项选项说明File要运行的节点图资产可 Edit 打开或 Create 新建Auto Run开启后对象出生时图自动开始运行Variables图中声明的每个变量都会在这里出现可为每个对象单独设置初始值组件细节参考 docs/docs/manual/editor/components/nodeGraph.md。认识节点图编辑器右键建节点、拖线连逻辑 ️打开编辑器后你会看到一个由节点和连线组成的画布日常操作非常直接操作方法添加节点在空白处右键打开创建菜单按分类分组顶部搜索框会自动聚焦输入即过滤成扁平列表。也可以从引脚拖出一根线松手在空白处直接创建一个已连好的节点连接节点从一个输出引脚拖到兼容的输入引脚布线整形点击连线任意处可加可拖拽的拐点绕开其他节点双击拐点删除编辑属性节点属性直接显示在节点本体上批量操作空白处拖框多选右键节点可复制/删除整理视图左侧面板 Tools 区的Reset View按钮可框选全部节点分组Tools Add Group 创建带标题的框纯粹是视觉分组方便管理大图循环变量面板上方的Repeat复选框勾选后任何流程路径结束都会等一帧回到Start重新执行——相当于把 Wait Frame 接回开头读懂节点图的关键逻辑线 vs 值线 ⚡节点图里有两种线分清它们是读懂任何一张图的关键逻辑线Logic Wire灰色、以流动虚线绘制定义事情发生的顺序。执行从Start节点出发顺着逻辑线逐个节点前进虚线流动方向就是控制流方向。逻辑输出一次只能指向一个下游但多个上游可以汇入同一个逻辑输入。值线Value Wire携带计算出的数值比较的数、要发消息的对象等。每个值引脚都有数据类型整数、浮点、向量、对象引用……引脚颜色反映类型只能连接兼容的引脚——数值类型之间可自动互相转换向量或对象引用不能接到期望数字的引脚上。值输出可以同时喂给多个输入而一个值输入只接受一个来源。内置节点按分类组织在创建菜单里覆盖FlowStart、Wait、Wait Frame、Repeat、If-Else、Switch-Case、On Extremum、Value常量、Argument、Delta Time、Compare、Math / Vector Math / Quat Math / Easing / Wave各类运算与振荡器、ObjectSend Event、Delete Object、Get/Set Position、Set Rotation 等、SceneLoad Scene、VariablesGet Var / Set Var、DebugLog 系列、Note等。所有标量输入在未接线时都会显示一个可直接填写的小输入框方便输入常量。内置节点定义本身也是脚本入口源码可参考 data/nodes/builtin/flow.js 与 data/nodes/builtin/object.js。完整示例从 Start 到 Load Scene 的通关流程 下面搭一条最常见的剧情流程游戏开始 → 等待 5 秒 → 判断玩家状态 → 加载下一关。只需 5 个节点Start一切逻辑图的入口节点执行从这里开始向右拖出第一根逻辑线Wait从 Flow 分类拖入在节点上把sec.属性填成5——游戏会暂停这条流程 5 秒而主循环照常运转If-Else分支节点。在它的值输入上接一个Compare或直接从对象变量取值为真走True线为假走False线Load SceneScene 分类在 True 分支上接一个Load Scene节点它自带一个场景选择器直接挑选项目里的目标场景即可无需填任何代码Note可选但推荐在图里加个注释框说明这段流程的用途团队协作时图会更容易读。连线完成后整条链就是Start → Wait(5s) → If-Else →(True)→ Load Scene(nextLevel)→(False)→ 继续游戏逻辑点击构建编辑器会把这张图转译成 C 协程代码Wait变成coro_sleep分支变成if/else最终像手写代码一样原生执行——这也是节点图不通用但够快的原因它只负责把事件序列组织得清晰易改。进阶技巧用变量和 Repeat 让逻辑循环起来 想让流程循环比如巡逻 → 检测 → 再巡逻有两种方式勾选编辑器上方Repeat复选框任何流程路径结束后自动回 Start 循环在图上手动把末尾的Wait Frame接回 Start。变量Variables则让数据在等待之间存活在编辑器左侧Variables 面板声明变量名字 类型Int / UInt / Float / Vec3 / Quat / Object用Get Var/Set Var节点读写Set Var带 Op 选项Set / Add / Subtract并输出结果值一个节点就能完成自增计数器因为图是协程运行变量值会跨Wait/Wait Frame保持——比如跳跃次数 1这种逻辑天然支持每个声明的变量会出现在每个使用该图的对象组件上可为不同对象设置不同的初始值Object 类型变量则是对象选择器同一张图在不同对象上可指向不同目标。还不够给 Pyrite64 节点图扩展自定义节点 节点图编辑器内置的节点并非硬编码——每个节点都是一个小型 JavaScript 文件声明的外观、引脚、属性和 C 代码生成逻辑。你只需在项目根目录建nodes/文件夹、放入*.js文件如nodes/logMessage.js打开项目即被加载编辑器还会监听该文件夹、保存即热重载无需重启。一个自定义节点大致就是id稳定唯一标识、name菜单里的名字、inputs/outputs引脚、props可编辑属性、build生成 C 的那段函数。比如输出调试日志的节点build里一行ctx.line(...)就能把 C 语句写进生成代码。完整 API引脚、值类型、属性、代码生成器ctx的全部方法详见 docs/docs/manual/script/nodeGraphCustom.md内置节点的实现风格可参考 data/nodes/_types.js。总结一张图串起 Pyrite64 游戏逻辑 ⭐创建对象加 Node Graph 组件 → Create 命名 → Edit 打开编辑器连线灰色逻辑线管顺序从 Start 出发彩色值线传数据引脚颜色即类型完整示例Start → Wait(5s) → If-Else → Load Scene5 个节点完成等待—判断—切场景循环与状态Repeat 复选框 声明变量 Set Var 自增扩展nodes/*.js自定义节点保存即热重载。更多用法与自定义节点指南请阅读 docs/docs/manual/script/nodeGraph.md。【免费下载链接】pyrite64N64 Game-Engine and Editor using libdragon tiny3d项目地址: https://gitcode.com/GitHub_Trending/py/pyrite64创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。