@cocos/cannon

中文文档
1.2.8发布于 2021/07/20CommonJS零依赖近 30 天下载 2052

用JavaScript写的轻量级3D物理引擎.

中文使用文档
文档目录7 节
  1. 网络的轻量级 三维物理
  2. 浏览器安装
  3. 节点.js 安装
  4. 示例
  5. 特征
  6. 待办
  7. 帮助

大炮.js 为可可创造者

网络的轻量级 三维物理

灵感来自 3个j 财务报告和审定财务报表 弹药.js在网络上缺乏物理引擎的驱动下,大炮来了. 刚性的身体物理引擎包括简单的相撞探测,各种身体形状,接触,摩擦和约束.

演示文稿 - 说吧 文档 - 说吧 渲染提示 - 说吧 国家防范机制一揽子计划 - 说吧 光盘N

浏览器安装

包括 大炮. js (英语) 或者说 加农炮.min.js 在你的html中,你结束了:

<script src="cannon.min.js"></script>

节点.js 安装

通过 npm 为 Cocos 创建者安装 :

用途 : npm install @cocos/cannon --save键。

示例

下面的样本代码在平面上创建出一个球体,将模拟步骤,并打印出球体模拟到控制台. 请注意,Cannon.js使用 SI 单位 (米、公斤、第二等).

// Setup our world
var world = new CANNON.World();
world.gravity.set(0, 0, -9.82); // m/s²

// Create a sphere
var radius = 1; // m
var sphereBody = new CANNON.Body({
   mass: 5, // kg
   position: new CANNON.Vec3(0, 0, 10), // m
   shape: new CANNON.Sphere(radius)
});
world.addBody(sphereBody);

// Create a plane
var groundBody = new CANNON.Body({
    mass: 0 // mass == 0 makes the body static
});
var groundShape = new CANNON.Plane();
groundBody.addShape(groundShape);
world.addBody(groundBody);

var fixedTimeStep = 1.0 / 60.0; // seconds
var maxSubSteps = 3;

// Start the simulation loop
var lastTime;
(function simloop(time){
  requestAnimationFrame(simloop);
  if(lastTime !== undefined){
     var dt = (time - lastTime) / 1000;
     world.step(fixedTimeStep, dt, maxSubSteps);
  }
  console.log("Sphere z position: " + sphereBody.position.z);
  lastTime = time;
})();

如果你想知道如何使用加农炮.js 并配有渲染引擎,例如: 三.js,见: 实例。 。 。 .

特征

  • 刚性身体动态
  • 异地相撞探测
  • 接触、摩擦和归还
  • 制约因素
    • 点(a.k.a.球/口袋接合)
    • 距离
    • 兴格(带有可选的马达)
    • 锁定
    • 圆锥形
  • Gauss-Seidel 制约解析器和岛分算法
  • 碰撞过滤器
  • 身体睡觉
  • 试验SPH/流体支持
  • 各种形状和相撞算法(见下表)
球体飞机方框顶端颗粒高度场特里梅什语Name
球体对对对对对对对
飞机- 说吧- 说吧对对对- 说吧对
方框- 说吧- 说吧对对对对(待办)
圆柱- 说吧- 说吧对对对对(待办)
顶端- 说吧- 说吧- 说吧对对对(待办)
颗粒- 说吧- 说吧- 说吧- 说吧- 说吧(待办)(待办)
高度场- 说吧- 说吧- 说吧- 说吧- 说吧- 说吧(待办)
特里梅什语Name- 说吧- 说吧- 说吧- 说吧- 说吧- 说吧- 说吧

待办

简单的待办事宜有标记 @todo 在代码。 Github Issues可以而且也应该被用于做拖把.

帮助

创建一个 问题 如果你需要帮助.

版本与发布记录

@cocos/cannon 共发布 29 个版本,首次发布于 2019/10/21;过去 12 个月发布了 0 个版本。

版本发布日期距今
1.2.8latest2021/07/205 年前
1.2.7-exp.1beta2021/06/285 年前
1.2.72021/06/285 年前
1.2.6-exp.22021/06/095 年前
1.2.6-exp.12021/06/095 年前
1.2.62021/06/095 年前

关于 @cocos/cannon 的常见问题

@cocos/cannon 是什么?

用JavaScript写的轻量级3D物理引擎.

如何安装 @cocos/cannon?

在项目目录运行 npm install @cocos/cannon,或使用 pnpm add / yarn add / bun add。

@cocos/cannon 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/cocos__cannon 是否存在。

@cocos/cannon 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@cocos/cannon 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js *。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@cocos/cannon 可以商用吗?

@cocos/cannon 使用 未声明 许可。package.json 没有声明许可证。没有许可证的代码默认保留全部权利,商用前请联系作者或查看仓库中的 LICENSE 文件。以上为概括,不构成法律意见,请以许可原文为准。

@cocos/cannon 的下载量有多少?

根据 npm 官方下载统计,@cocos/cannon 在 2026/10/10 – 2026/11/08 这 30 天内被下载 2,052 次,日均约 68 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@cocos/cannon 还在维护吗?

最新版本 1.2.8 发布于 2021/07/20(5 年前);至今共发布 29 个版本,其中过去 12 个月发布了 0 个;首次发布于 2019/10/21。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。