SuperAPI AI 工具集

godot-game-loop-waves

通用与其它

查看项目

更新于 10-15 22:10

技能介绍

用途:为 Godot 4 的波次制战斗提供架构模式与脚本,管理敌人波次、难度缩放与自动生成,适用于波次射击、塔防、生存等玩法。

主要能力:以数据驱动的“波次状态”模式组织流程。wave_resource.gd 存放波次组成与难度数据,便于策划调整而不改代码;wave_manager.gd 用 await 计时器编排时间线,通过 &"enemies" 分组与信号统计清场,生成采用 call_deferred(&"add_child", …),支持 use_pool / recycle_enemy 对象池;wave_spawner.gd 以 Marker3D 提供刷怪位置与可选半径抖动;wave_weighted_spawner.gd 按权重随机选敌;wave_loop_patterns.gd 提供 MultiMesh 群体、异步寻路、后台预加载与服务器端物理实体等十个模式。密度上,约 80 个节点内用节点管理器+标记生成器,数百单位用 MultiMesh+加权生成,约万级用 PhysicsServer/NavigationServer RID 而非逐节点。

用法:先编写 wave_resource.gd 组成表,放置 Marker 或加权生成器,将 wave_manager.gd 的 spawner 指向该 Marker;权重替代固定数量时调用 WaveWeightedSpawner.spawn_enemy()。进阶可用 OcclusionInstance3D 烘焙遮挡剔除,UI 以 CanvasLayer+信号解耦。

限制与规范:避免 get_children() 扫描、每帧计数或频繁实例化销毁;RID swarm 不要沿用节点式 wave_manager;物理回调内须延迟生成;死亡实体用 set_deferred 关闭碰撞;预载资源需 duplicate_deep 防止共享属性;高频分组用 StringName;避免同步复杂对象、硬编码 (0,0,0) 与未反馈的自动开波。官方文档与脚本需按需查阅。依赖 godot-project-foundations、godot-gdscript-mastery、godot-resource-data-patterns 等前置技能。