Heightfield Class
地形形状类。高度数据以数组给出。这些数据点分布均匀,距离为elementwidth。
构造器
Heightfield
(
-
[options]
参数:
-
[options]Object 可选(注意:这一参数将传入 Shape 的构造器)
-
[heights]Array 可选用于构造地形的y值数组。
-
[minValue]Number 可选数据中数据点的最小值。没有给出时将自动计算。
-
[maxValue]Number 可选数据中数据点的最大值。没有给出时将自动计算。
-
[elementWidth=0.1]Number 可选x方向数据点之间的间距
-
Example:
// Generate some height data (y-values).
var heights = [];
for(var i = 0; i < 1000; i++){
var y = 0.5 * Math.cos(0.2 * i);
heights.push(y);
}
// Create the heightfield shape
var heightfieldShape = new Heightfield({
heights: heights,
elementWidth: 1 // Distance between the data points in X direction
});
var heightfieldBody = new Body();
heightfieldBody.addShape(heightfieldShape);
world.addBody(heightfieldBody);
项目索引
方法
Methods
computeMomentOfInertia
(
Number
-
mass
参数:
-
massNumber
Returns:
Number:
getLineSegment
(
-
start -
end -
i
获取地形中的线段
参数:
-
startArray存储生成的起始点的数组
-
endArray存储生成的终止点的数组
-
iNumber
updateArea
()
更新 .area 属性
updateBoundingRadius
()
Number
更新形状的包围圆半径
Returns:
Number:
updateMaxMinValues
()
更新 .minValue 和 .maxValue属性
Properties
angle
Number
基于刚体的角度
area
Number
形状的面积
boundingRadius
Number
形状的包围半径
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
当与其他刚体碰撞时是否产生碰撞作用力。需要注意的是,碰撞仍会产生,但会被禁用。即:该刚体会穿过其他刚体,但仍然会触发碰撞等事件。
elementWidth
Number
每个元素的宽度
heights
Array
沿x轴展开的一组数值或高度值
id
Number
形状的唯一标志符
maxValue
Number
高度值的最大值
minValue
Number
高度值的最小值
position
Array
基于刚体的位置
sensor
Boolean
如果你希望此形状为传感器,则设置为true。传感器不会产生碰撞,但仍会上报碰撞事件。它在你想在不产生碰撞的情况下知道这一形状是否与其他形状重叠的情况下很实用
