API Docs for: 0.7.1
Show:

Convex Class

Extends Shape

凸面类

构造器

Convex

(
  • [options]
)

参数:

  • [options] Object 可选

    (注意:这一参数将传入 Shape 的构造器)

    • [vertices] Array 可选

      围绕这一形状的顶点数组,顶点以逆时针方向给出

    • [axes] Array 可选

      单位长度向量数组,表示这个凸型的对称轴

Example:

// Create a box
        var vertices = [[-1,-1], [1,-1], [1,1], [-1,1]];
        var convexShape = new Convex({ vertices: vertices });
        body.addShape(convexShape);
        

Methods

computeAABB

(
  • out
  • position
  • angle
)

Inherited from Shape but overwritten in src/shapes/Convex.js:333

参数:

  • out AABB
  • position Array
  • angle Number

computeMomentOfInertia

(
  • mass
)
Number

Inherited from Shape but overwritten in src/shapes/Convex.js:258

计算凸型的转动惯量

参数:

  • mass Number

Returns:

Number:

projectOntoAxis

(
  • offset
  • localAxis
  • result
)
static

将凸型投影到面向世界的轴上

参数:

  • offset Array
  • localAxis Array
  • result Array

raycast

(
  • result
  • ray
  • position
  • angle
)

Inherited from Shape but overwritten in src/shapes/Convex.js:347

参数:

triangleArea

(
  • a
  • b
  • c
)
Number static

根据给定的a, b, c 三个点计算出三角剖分面积, 当点是按逆时针方向排序的,这个面积为正数,否则为负数

参数:

  • a Array
  • b Array
  • c Array

Returns:

Number:

updateArea

()

Inherited from Shape but overwritten in src/shapes/Convex.js:311

更新 .area 属性

updateBoundingRadius

()

Inherited from Shape but overwritten in src/shapes/Convex.js:280

更新 .boundingRadius 属性

updateCenterOfMass

()

更新 .centerOfMass 属性.

updateTriangles

()

更新 .triangles 属性

Properties

angle

Number

Inherited from Shape: src/shapes/Shape.js:36

基于刚体的角度

area

Number

Inherited from Shape: src/shapes/Shape.js:123

形状的面积

axes

Array

Axes defined in the local frame.

body

Body

Inherited from Shape: src/shapes/Shape.js:21

形状依附的刚体,一个形状只能依附在一个刚体上

boundingRadius

Number

Inherited from Shape but overwritten in src/shapes/Convex.js:102

凸型的包围半径

centerOfMass

Array

多边形的重心

collisionGroup

Number

Inherited from Shape: src/shapes/Shape.js:72

形状所属的碰撞分组(位掩码). 参见 这一教程.

Example:

// Setup bits for each available group
                    var PLAYER = Math.pow(2,0),
                        ENEMY =  Math.pow(2,1),
                        GROUND = Math.pow(2,2)
                    
                    // 为形状设置分组
                    player1Shape.collisionGroup = PLAYER;
                    player2Shape.collisionGroup = PLAYER;
                    enemyShape  .collisionGroup = ENEMY;
                    groundShape .collisionGroup = GROUND;
                    
                    //为形状设置对应的碰撞分组,下例表明玩家(PLAYER) 只会和地面(GROUND)和敌人(ENEMY)碰撞,而不会与其他玩家碰撞
                    // Note that the players can collide with ground and enemies, but not with other players.
                    player1Shape.collisionMask = ENEMY | GROUND;
                    player2Shape.collisionMask = ENEMY | GROUND;
                    enemyShape  .collisionMask = PLAYER | GROUND;
                    groundShape .collisionMask = PLAYER | ENEMY;
                    
// How collision check is done
                    if(shapeA.collisionGroup & shapeB.collisionMask)!=0 && (shapeB.collisionGroup & shapeA.collisionMask)!=0){
                        // The shapes will collide
                    }
                    

collisionMask

Number

Inherited from Shape: src/shapes/Shape.js:109

碰撞掩码,参见 .collisionGroup.

collisionResponse

Boolean

Inherited from Shape: src/shapes/Shape.js:103

当与其他刚体碰撞时是否产生碰撞作用力。需要注意的是,碰撞仍会产生,但会被禁用。即:该刚体会穿过其他刚体,但仍然会触发碰撞等事件。

id

Number

Inherited from Shape: src/shapes/Shape.js:58

形状的唯一标志符

material

Material

Inherited from Shape: src/shapes/Shape.js:116

用于碰撞的材质,如果这被设置为null, 在物理世界中将使用默认材质替代

position

Array

Inherited from Shape: src/shapes/Shape.js:27

基于刚体的位置

sensor

Boolean

Inherited from Shape: src/shapes/Shape.js:130

如果你希望此形状为传感器,则设置为true。传感器不会产生碰撞,但仍会上报碰撞事件。它在你想在不产生碰撞的情况下知道这一形状是否与其他形状重叠的情况下很实用

triangles

Array

这个多边形的三角剖分,结构为包含3个数组的一个数组,每个子数组包含3个指代顶点的整数

type

Number

Inherited from Shape: src/shapes/Shape.js:42

vertices

Array

基于刚体的顶点