以撒的结合:忏悔 REPENTOGON 枚举详解:SuplexState 与 Suplex! 道具状态机
游戏开发插件系统【免费下载链接】REPENTOGONScript extender for The Binding of Isaac: Repentance项目地址https://gitcode.com/gh_mirrors/re/REPENTOGON点击查看免费下载导读SuplexState是 REPENTOGON《The Binding of Isaac: Repentance》的脚本扩展框架为玩家角色新增的枚举类型用于描述Suplex!德式后抛摔道具在使用过程中所处的完整状态机。本文以 SuplexState 枚举文档 为主体结合仓库内的 Lua 枚举定义、C 底层枚举以及EntityPlayer的读写接口讲解 5 个状态的语义、状态迁移逻辑并给出可在 MOD 中直接使用的 Lua 实战示例。读完本文你将掌握如何读取、设置并利用SuplexState实现自定义的 Suplex! 流程控制如强制打断、追踪状态、重定向落点等。一、枚举全貌5 个状态的完整定义原文档给出的枚举值如下ValueEnumeratorComment0INACTIVE—1DASHING—2AIMING—3ASCENDING—4DESCENDING—从命名上可以清晰看出该枚举完整刻画了 Suplex! 道具从激活到完成落地的四段式动作流程INACTIVE0未处于 Suplex 流程中是角色的空闲基准状态DASHING1角色正朝目标敌人冲刺的阶段AIMING2冲刺命中、将目标抓举至头顶后玩家瞄准跳跃落点的阶段ASCENDING3角色携目标跳起上升的阶段DESCENDING4角色携目标向下砸落、对落点造成伤害的阶段流程结束后回到INACTIVE。背景补充Suplex! 是《以撒的结合忏悔》中的主动道具其效果正是冲撞敌人 → 将其抓举过头顶 → 跳起 → 猛砸落地。SuplexState枚举的 5 个值即对应这一套完整动作的每个阶段。二、源码级印证枚举的双端定义完全一致该枚举在仓库中同时存在于Lua 侧与C 侧两处且数值完全对应Lua 侧运行时给 MOD 使用定义于 enums_ex.lua是 REPENTOGON 在游戏启动时注入 Lua 环境的扩展枚举表SuplexState { INACTIVE 0, DASHING 1, AIMING 2, ASCENDING 3, DESCENDING 4, }C 侧底层引擎定义定义于 Global.zhl与 Lua 侧逐值对齐enum SuplexState { INACTIVE 0, DASHING 1, AIMING 2, ASCENDING 3, DESCENDING 4 };从源码结构看Lua 侧的枚举表正是 C 侧枚举的忠实镜像两者共享同一套数值约定因此 MOD 中写入的值如SuplexState.ASCENDING可以直接与底层状态字段对接不存在转换开销或偏移误差。三、配套字段与读写 API围绕 SuplexState 的完整操作面SuplexState并不是孤立存在的——REPENTOGON 为 Suplex! 流程配套提供了一组完整的字段与 Lua 接口全部集中在玩家实体EntityPlayer上3.1 底层字段C 结构在 EntityPlayer.zhl 中可以看到玩家实体上保存了 4 个 Suplex 相关字段int _suplexState : 0x1f08; -- 当前 Suplex 状态即 SuplexState 枚举值 int _suplexAimCountdown : 0x1f0c; -- 瞄准阶段的倒计时 Vector _suplexTargetPos : 0x1f10; -- 目标敌人位置抓举目标 Vector _suplexLandPos : 0x1f18; -- 计划落地位置这印证了状态机不仅记录当前处于哪个阶段还携带了瞄准倒计时、目标坐标与落点坐标等配套数据供后续阶段的计算使用。3.2 Lua 读写接口8 个函数在 LuaEntityPlayer.cpp 中实现了 4 组成对的 Get/Set 接口注册在 函数注册表 中Get 函数Set 函数参数/返回值GetSuplexState()SetSuplexState(State)返回/设置[SuplexState](https://link.gitcode.com/i/5d47b94dd69c7c26500b7f32db718d06)枚举值GetSuplexAimCountdown()SetSuplexAimCountdown(Countdown)返回/设置整数倒计时帧数GetSuplexTargetPosition()SetSuplexTargetPosition(Position)返回/设置[Vector](https://link.gitcode.com/i/d89f4a8f55530055dd47900d468530f8)目标位置GetSuplexLandPosition()SetSuplexLandPosition(Position)返回/设置[Vector](https://link.gitcode.com/i/d89f4a8f55530055dd47900d468530f8)落点位置接口的官方签名含拷贝用签名可在 EntityPlayer 文档 与 EntityPlayer 文档 - Set 区 中查到。其中SetSuplexState在实现上直接将传入的整数值写入底层字段player-_suplexState见 LuaEntityPlayer.cpp未做范围校验因此写入合法枚举值至关重要。关联信息GetHeldEntity()EntityPlayer.md可返回玩家当前抓举在头顶的实体如可投掷红炸弹或 Suplex! 目标与 Suplex 流程配套使用可在DASHING/AIMING阶段确认抓举目标。四、实战示例状态驱动的 Suplex! 流程控制下面给出可直接嵌入 MOD 的 Lua 代码覆盖三种典型用法。4.1 每帧跟踪玩家当前 Suplex 阶段-- 在 MC_POST_PEFFECT_UPDATE 回调中调用 local player Isaac.GetPlayer(0) local state player:GetSuplexState() if state SuplexState.INACTIVE then -- 空闲角色不在 Suplex 流程中 elseif state SuplexState.DASHING then -- 正在冲向目标 elseif state SuplexState.AIMING then -- 已抓举目标正在瞄准落点 elseif state SuplexState.ASCENDING then -- 跳起上升中 elseif state SuplexState.DESCENDING then -- 向下砸落中即将落地 end4.2 强制打断 / 手动重置 Suplex 流程-- 将状态直接复位为 INACTIVE可立即中断当前 Suplex 动作 player:SetSuplexState(SuplexState.INACTIVE)4.3 重定向落点配合 AIMING / ASCENDING 阶段if player:GetSuplexState() SuplexState.AIMING then -- 读取当前目标位置与计划落点 local target player:GetSuplexTargetPosition() local land player:GetSuplexLandPosition() -- 修改落点让角色砸向别处如房间内的某个敌人 local newLand target Vector(0, 40) player:SetSuplexLandPosition(newLand) -- 同时可调整瞄准倒计时 player:SetSuplexAimCountdown(30) end4.4 注意事项务必使用枚举常量而非魔法数字虽然底层仅存储整数但直接书写0/1等数字会显著降低可读性且在INACTIVE0以外的状态分支中极易出错。写入需谨慎SetSuplexState不做边界校验见上文实现写入 0–4 之外的数值可能导致状态机行为异常或动画错乱。状态是瞬态的DASHING、ASCENDING等阶段通常只持续数帧若需捕捉某一状态如观察DASHING是否发生建议使用标志位在进入状态时记录。五、扩展阅读枚举定义与函数注册可参考 enums_ex.lua 与 LuaEntityPlayer.cpp底层字段结构见 EntityPlayer.zhlC 枚举镜像见 Global.zhl该组 API 于 REPENTOGON 更新日志中与Get/SetSuplexAimCountdown、Get/SetSuplexTargetPosition、Get/SetSuplexLandPosition一同被收录见 changelog.txt确认其为稳定提供的扩展接口抓举实体检测请配合 GetHeldEntity 使用。赞分享游戏开发插件系统【免费下载链接】REPENTOGONScript extender for The Binding of Isaac: Repentance项目地址https://gitcode.com/gh_mirrors/re/REPENTOGON点击查看免费下载相关推荐REPENTOGON Lua API 解析HistoryItem 类与《以撒的结合忏悔》道具历史追踪系统REPENTOGON Lua API 解析HistoryItem 类与《以撒的结合忏悔》道具历史追踪系统 HistoryItem 是 REPENTOGON游戏开发插件系统REPENTOGON WaterClipFlag 枚举完全指南掌控《以撒的结合忏悔》水中渲染与倒影行为REPENTOGON WaterClipFlag 枚举完全指南掌控《以撒的结合忏悔》水中渲染与倒影行为 WaterClipFlag 是 REPENTOGON游戏开发插件系统REPENTOGON DebugFlag 枚举全解析以位掩码控制《以撒的忏悔》调试开关REPENTOGON DebugFlag 枚举全解析以位掩码控制《以撒的忏悔》调试开关 DebugFlag 是 REPENTOGON 为《以撒的结合忏悔》游戏开发插件系统上一篇如何用Sunshine打造低延迟游戏串流服务器从问题发现到完美解决方案下一篇如何高效使用Sketch MeaXure设计师与开发者的终极协作指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

LAMMPS fix python/invoke:在分子动力学模拟过程中周期性调用 Python 回调函数

LAMMPS fix python/invoke:在分子动力学模拟过程中周期性调用 Python 回调函数

科研科学计算高性能计算 【免费下载链接】lammps Public development project of the LAMMPS MD software package 项目地址: https://gitcode.com/gh_mirrors/la/lammps 点击查看 免费下载 fix python/invoke 是 LAMMPS PYTHON 包提供的一个特殊 fix,…

2026/10/16 2:30:53 阅读更多 →
Gemini API 费用失控?一套完整的成本监控与优化实战指南

Gemini API 费用失控?一套完整的成本监控与优化实战指南

如果你也是被 Gemini API 账单吓一跳的那种人,这篇文章就是写给你的。我在一个模拟项目X里接入了 Gemini API,最初只是做点文本分类和摘要,结果月底看到消耗时直接愣住——Token 像流水一样哗哗往外走,费用肉眼可见地涨。后来我花…

2026/10/16 2:30:53 阅读更多 →
Secure CRT 配置高亮显示

Secure CRT 配置高亮显示

1、打开SecureCRT,选择“Options”--Global Options,新建Keywords的文件夹新建文件名称为“Keywords”然后再里面创建文件名为“highlight-network.ini”粘贴以下内容:D:"Match Case"00000000 D:"Regex Line Mode"000000…

2026/10/16 2:30:53 阅读更多 →

最新新闻

微信小程序圆环组件开发:Canvas 2D与CSS方案选型及性能优化实战

微信小程序圆环组件开发:Canvas 2D与CSS方案选型及性能优化实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 3:13:02 阅读更多 →
interface 的底层原理

interface 的底层原理

深入浅出 Go 语言:Interface 的底层实现原理在 Go 语言中,接口(interface)是实现多态和解耦的核心机制。与其他面向对象语言不同,Go 采用的是“隐式实现”(Duck Typing,鸭子类型)——…

2026/10/16 3:13:02 阅读更多 →
【C++入门】编译链接模型 - 08 静态库为什么像一包目标文件

【C++入门】编译链接模型 - 08 静态库为什么像一包目标文件

博主介绍:程序喵大人 35 - 资深C/C/Rust/Android/iOS客户端开发10年大厂工作经验嵌入式/人工智能/自动驾驶/音视频/游戏开发入门级选手《C20高级编程》《C23高级编程》等多本书籍著译者更多原创精品文章,首发gzh,见文末👇&#x…

2026/10/16 3:13:02 阅读更多 →
重复测量数据全攻略:2026 一篇讲透论文重复测量实验设计,把变量控制与记录规范讲清

重复测量数据全攻略:2026 一篇讲透论文重复测量实验设计,把变量控制与记录规范讲清

同一批被试在四个时间点各测一次,交到导师手里却被追问「你的实验设计写在哪」。重复测量方差分析、线性混合模型这些名称不难写,难的是交代清楚每次观测为何落在这个时点、谁在中途退出、缺失值依据什么规则处置。下文从自变量控制、测量间隔、批次安排…

2026/10/16 3:13:02 阅读更多 →
信贷风控用户画像实战:从标签体系到贷前贷中贷后策略落地

信贷风控用户画像实战:从标签体系到贷前贷中贷后策略落地

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 3:13:02 阅读更多 →
Java字符串转数字的正确方法

Java字符串转数字的正确方法

java中把字符串转成 的方法更新时间为二零二三年七月七日零九点四十分零三秒, 作者是。在Java环境里头, 大家可以利用某个类里面的那个叫作静态的方法, 把一段写着数字的字符串变成对应那种类型的数, 这篇文章会配上一些具体的代码例子, 来把这个事情从字符串弄成具体数值的过程…

2026/10/16 3:12:01 阅读更多 →

日新闻

个人 AI Agent 平台接入 TaoToken:统一 Key 与 API 通道的配置大纲

个人 AI Agent 平台接入 TaoToken:统一 Key 与 API 通道的配置大纲

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 0:00:05 阅读更多 →
信号与系统频域分析作业解题指南

信号与系统频域分析作业解题指南

1. 作业背景与核心要求解析信号与系统作为电子信息类专业的核心基础课,其作业设计往往直接关联课程的核心知识框架。2026年春季第六次作业的布置,通常对应着课程进展到频域分析的关键阶段。根据常规教学进度推测,本次作业可能涉及以下核心内容…

2026/10/16 0:00:05 阅读更多 →
Django MVT实战:从零构建图书借阅系统,彻底搞懂Model-View-Template分层

Django MVT实战:从零构建图书借阅系统,彻底搞懂Model-View-Template分层

1. 从一个"四不像"的练手项目说起如果你已经看完了Django的官方教程前几章,跟着敲完了投票应用,大概会有一种"我好像会了,又好像什么都不会"的割裂感。教程里每个知识点都是拆开的——这一章讲模型,下一章讲视…

2026/10/16 0:00:05 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/15 16:18:54 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/15 19:41:51 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/15 13:48:15 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 9:49:14 阅读更多 →