npm 包 whs-ammo 使用教程

阅读时长 6 分钟读完

简介

whs-ammo 是一个用于物理仿真的 npm 包,其基于 Ammo.js 提供了更加高效的 API 与更加直观的参数设定方式。能够轻松地进行刚体物理的模拟。此包主要为 Three.js 提供了物理引擎支持。

安装

使用 npm

我们可以通过在终端中输入以下命令来安装 whs-ammo:

这样就可以将 whs-ammo 包安装到工程的目录下。但请确保在工程中加入了引擎库 Ammo.js。

开始使用

安装成功后,我们先详细介绍一下 whs-ammo 的 API。对于 whs-ammo,我们主要是通过三个类:

  • WHS.PhysicMaterial:物理材质。
  • WHS.Shape:物体的形状。
  • WHS.Body:物体的刚体属性。

WHS.PhysicMaterial

物理材质分为两类,分别为静态和动态材料。静态材料用于描述参与冲突检测但不会下落的对象(例如地面),而动态材料用于描述可以移动和下落的对象。WHSPHysicalMaterial 共有两个输入参数,对于静态材料,density = 0,对于动态材料,需要指定一个质量值 mass。

WHS.Shape

我们可以通过 Sphere 类创建一个球体样式的物体。

WHS.Body

我们可以通过 Body 类创建一个刚体,提供三种模式,分别为 Dynamic(动态模式)、Kinematic(动量模式)、Static(静态模式)。我们在这里演示动态模式。

示例代码

-- -------------------- ---- -------
------ - -- --- ---- -----------
------ - ---------- - ---- -----------
------ - -- ----- ---- --------

----- ----- - --- ---------
  --- --------------------
  --- ------------------
  --- ------------------
    --------- -
      -- ---
      -- ---
      -- ---
    --
  ---
  --- -------------------------- --- --------------------------- -- ---- -------
  --- --------------------- -------- -------- ---
  --- -------------------
  --- --------------------------
---

----- -------------- - --- ------------------------------------ - -------- - ---
----- --------------- - --- ------------------------------------- - ----- - ---

----- ------ ------- ---------- -
  ------------------ - --- -
    --------------
    ----- ----- - --- ------------
      --------- ----------------
      --------- -----
      ----- --
      --------- ----------------
      --------- --- --- ---
    ---
    ------------------------ - ------------- - ------- - --
    ----------------------
      --- ----------
        ------
        ----- --
        --------- ----------------
        --------- --- ---- ---
        -------------- ----
        --------------- ----
      --
    --
  -
-

----- ------ ------- --------- -
  ------------------ - --- -
    -------
      --------- -
        ------ ----
        ------- ----
      --
      --------- --- ------------------------- ------ -------- ---
      --------- --------- - -- -- ---
    ---
    ----------------------
      --- ----------
        --------- ---------------
        ------ --- -----------
          --------- -
            ------ ----
            ------- ----
          --
        ---
      --
    --
  -
-

----- ------ - --- -------- ------- - ---
----- ------ - --- ---------

----------------- --------

--------------

结语

whs-ammo 相对于 Ammo.js ,在物理仿真方面提供了更加便捷的 API 与更加贴合前端开发的参数设定方式。但是,使用 whs-ammo 时,需要引入相关的库文件,同时需要进行一些配置。只要按照文中的步骤进行操作,即可在前端项目中灵活地使用物理引擎。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600671098dd3466f61ffdfd8

纠错
反馈