API Docs for: 0.7.1
Show:

Shape Class

Defined in: src/shapes/Shape.js:5

所有形状的基类

构造器

Shape

(
  • [options]
)

参数:

  • [options] Object 可选
    • [position] Array 可选
    • [angle=0] Number 可选
    • [collisionGroup=1] Number 可选
    • [collisionMask=1] Number 可选
    • [sensor=false] Boolean 可选
    • [collisionResponse=true] Boolean 可选
    • [type=0] Object 可选

Methods

computeAABB

(
  • out
  • position
  • angle
)

计算这一形状在世界中轴向包围盒

参数:

  • out AABB

    由此产生的AABB 包围盒

  • position Array

    形状在物理世界中的位置

  • angle Number

    形状在物理世界中的角度

computeMomentOfInertia

(
  • mass
)
Number

返回围绕给定了质量的刚体的Z轴的转动惯量. 参见维基百科.

参数:

  • mass Number

Returns:

Number:

如果惯性是无穷的或这一物体不可能旋转,则返回0

raycast

(
  • result
  • ray
  • position
  • angle
)

在这个形状上进行射线投射

参数:

  • result RayResult

    存储结果的入口

  • ray Ray

    用于射线投射的射线。

  • position Array

    形状在世界中的位置(.position 属性将被忽略)

  • angle Number

    形状在世界中的角度(.angle 属性将被忽略)

updateArea

()

更新 .area 属性

updateBoundingRadius

() Number

更新这一形状的包围半径

Returns:

Number:

Properties

angle

Number

基于刚体的角度

area

Number

形状的面积

body

Body

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

boundingRadius

Number

形状的包围半径

BOX

Number static

CAPSULE

Number static

CIRCLE

Number static

collisionGroup

Number

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

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

碰撞掩码,参见 .collisionGroup.

collisionResponse

Boolean

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

CONVEX

Number static

HEIGHTFIELD

Number static

id

Number

形状的唯一标志符

LINE

Number static

material

Material

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

PARTICLE

Number static

PLANE

Number static

position

Array

基于刚体的位置

sensor

Boolean

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