nape-js

面向 TypeScript 和 JavaScript 的完全类型化 2D 物理引擎——Nape 的现代化重写

刚体 • 圆形、多边形和胶囊体 • 约束 • 流体模拟 • 碰撞回调 • 射线检测与空间查询 • 断裂 • 软体 • 确定性多人联机 • 序列化 • Web Worker 支持——支持 tree-shaking、零依赖,gzip 后约 27 KB。

npm install @newkrok/nape-js

交互式演示

在画布上点击/拖动即可交互。请在下方选择一个演示。 物理 游戏

正在加载引擎…
FPS: — 刚体数: — 步进: —
源代码

性能测试

此刻正在你的浏览器中测量。每项测试都在紧凑循环中运行物理 step(),并报告每步的中位耗时。

按下按钮开始。

为什么选择 nape-js?

nape-js 是少数几个提供刚体动力学、关节(PivotJoint、DistanceJoint、WeldJoint、AngleJoint、MotorJoint、LineJoint、PulleyJoint、SpringJoint)、流体浮力断裂软体、射线检测与凸形扫掠、内置角色控制器、面向多人联机回滚的确定性步进、二进制序列化、回放录制以及独立线程 Web Worker 桥接的 JavaScript 和 TypeScript 2D 物理引擎之一——所有这些都集成在一个支持 tree-shaking 的 ESM 包中(gzip 后约 27 KB),带有完整的 TypeScript 类型且零 DOM 依赖。

在寻找 Box2DMatter.jsPlanck.jsRapier 的替代方案?运行浏览器内性能测试进行正面对比,或直接进入交互式示例——物理演示和可玩的小游戏(平台跳跃、MOBA、塔防、弹弓、弹珠台、俯视射击)。

API 一览

核心

形状