PhysicsManager
类型
物理系统将 box2d 作为内部物理系统,并且隐藏了大部分 box2d 实现细节(比如创建刚体,同步刚体信息到节点中等)。
你可以通过物理系统访问一些 box2d 常用的功能,比如点击测试,射线测试,设置测试信息等。
物理系统还管理碰撞信息的分发,她会在产生碰撞时,将碰撞信息分发到各个碰撞回调中。
注意:你需要先在刚体中开启碰撞接听才会产生相应的碰撞回调。
支持的物理系统指定绘制信息事件,请参阅 PhysicsManager.DrawBits
索引
属性(properties)
PTM_RATIO
Number
物理单位与像素单位互相转换的比率,一般是 32。VELOCITY_ITERATIONS
Number
速度更新迭代数POSITION_ITERATIONS
Number
位置迭代更新数FIXED_TIME_STEP
Number
指定固定的物理更新间隔时间,需要开启 enabledAccumulator 才有效。MAX_ACCUMULATOR
Number
每次可用于更新物理系统的最大时间,需要开启 enabledAccumulator 才有效。enabledAccumulator
Boolean
如果开启此选项,那么将会以固定的间隔时间 FIXED_TIME_STEP 来更新物理引擎,如果一个 update 的间隔时间大于 FIXED_TIME_STEP,则会对物理引擎进行多次更新。enabled
Boolean
指定是否启用物理系统?debugDrawFlags
Number
设置调试绘制标志gravity
Vec2
物理世界重力值
方法
testPoint
获取包含给定世界坐标系点的碰撞体testAABB
获取与给定世界坐标系矩形相交的碰撞体rayCast
检测哪些碰撞体在给定射线的路径上,射线检测将忽略包含起始点的碰撞体。hasEventListener
检查事件目标对象是否有为特定类型的事件注册的回调。on
注册事件目标的特定事件类型回调。off
删除之前用同类型,回调,目标或 useCapture 注册的事件监听器,如果只传递 type,将会删除 type 类型的所有事件监听器。targetOff
在当前 EventTarget 上删除指定目标(target 参数)注册的所有事件监听器。once
注册事件目标的特定事件类型回调,回调会在第一时间被触发后删除自身。dispatchEvent
通过事件对象派发事件clear
销毁记录的事件
Details
属性(properties)
PTM_RATIO
物理单位与像素单位互相转换的比率,一般是 32。
meta | description |
---|---|
类型 | Number |
定义于 | cocos2d/core/physics/CCPhysicsManager.js:70 |
VELOCITY_ITERATIONS
速度更新迭代数
meta | description |
---|---|
类型 | Number |
定义于 | cocos2d/core/physics/CCPhysicsManager.js:80 |
POSITION_ITERATIONS
位置迭代更新数
meta | description |
---|---|
类型 | Number |
定义于 | cocos2d/core/physics/CCPhysicsManager.js:91 |
FIXED_TIME_STEP
指定固定的物理更新间隔时间,需要开启 enabledAccumulator 才有效。
meta | description |
---|---|
类型 | Number |
定义于 | cocos2d/core/physics/CCPhysicsManager.js:102 |
MAX_ACCUMULATOR
每次可用于更新物理系统的最大时间,需要开启 enabledAccumulator 才有效。
meta | description |
---|---|
类型 | Number |
定义于 | cocos2d/core/physics/CCPhysicsManager.js:114 |
enabledAccumulator
如果开启此选项,那么将会以固定的间隔时间 FIXED_TIME_STEP 来更新物理引擎,如果一个 update 的间隔时间大于 FIXED_TIME_STEP,则会对物理引擎进行多次更新。 如果关闭此选项,那么将会根据设定的 frame rate 计算出一个间隔时间来更新物理引擎。
meta | description |
---|---|
类型 | Boolean |
定义于 | cocos2d/core/physics/CCPhysicsManager.js:145 |
enabled
指定是否启用物理系统?
meta | description |
---|---|
类型 | Boolean |
定义于 | cocos2d/core/physics/CCPhysicsManager.js:535 |
debugDrawFlags
设置调试绘制标志
meta | description |
---|---|
类型 | Number |
定义于 | cocos2d/core/physics/CCPhysicsManager.js:563 |
示例
// enable all debug draw info
var Bits = cc.PhysicsManager.DrawBits;
cc.director.getPhysicsManager().debugDrawFlags = Bits.e_aabbBit |
Bits.e_pairBit |
Bits.e_centerOfMassBit |
Bits.e_jointBit |
Bits.e_shapeBit;
// disable debug draw info
cc.director.getPhysicsManager().debugDrawFlags = 0;
gravity
物理世界重力值
meta | description |
---|---|
类型 | Vec2 |
定义于 | cocos2d/core/physics/CCPhysicsManager.js:610 |
方法
testPoint
获取包含给定世界坐标系点的碰撞体
meta | description |
---|---|
返回 | PhysicsCollider |
定义于 | cocos2d/core/physics/CCPhysicsManager.js:222 |
参数列表
point
Vec2 the world point
testAABB
获取与给定世界坐标系矩形相交的碰撞体
meta | description |
---|---|
返回 | [PhysicsCollider] |
定义于 | cocos2d/core/physics/CCPhysicsManager.js:253 |
参数列表
rect
Rect the world rect
rayCast
检测哪些碰撞体在给定射线的路径上,射线检测将忽略包含起始点的碰撞体。
meta | description |
---|---|
返回 | [PhysicsRayCastResult] |
定义于 | cocos2d/core/physics/CCPhysicsManager.js:280 |
参数列表
p1
Vec2 start point of the raycastp2
Vec2 end point of the raycasttype
RayCastType optional, default is RayCastType.Closest
hasEventListener
检查事件目标对象是否有为特定类型的事件注册的回调。
meta | description |
---|---|
返回 | Boolean |
定义于 | cocos2d/core/event/event-target.js:69 |
参数列表
type
String The type of event.
on
注册事件目标的特定事件类型回调。这种类型的事件应该被 emit
触发。
meta | description |
---|---|
返回 | Function |
定义于 | cocos2d/core/event/event-target.js:77 |
参数列表
type
String A string representing the event type to listen for.callback
Function The callback that will be invoked when the event is dispatched.The callback is ignored if it is a duplicate (the callbacks are unique).
arg1
Any arg1arg2
Any arg2arg3
Any arg3arg4
Any arg4arg5
Any arg5
target
Object The target (this object) to invoke the callback, can be null
示例
eventTarget.on('fire', function () {
cc.log("fire in the hole");
}, node);
off
删除之前用同类型,回调,目标或 useCapture 注册的事件监听器,如果只传递 type,将会删除 type 类型的所有事件监听器。
meta | description |
---|---|
定义于 | cocos2d/core/event/event-target.js:119 |
参数列表
type
String A string representing the event type being removed.callback
Function The callback to remove.target
Object The target (this object) to invoke the callback, if it's not given, only callback without target will be removed
示例
// register fire eventListener
var callback = eventTarget.on('fire', function () {
cc.log("fire in the hole");
}, target);
// remove fire event listener
eventTarget.off('fire', callback, target);
// remove all fire event listeners
eventTarget.off('fire');
targetOff
在当前 EventTarget 上删除指定目标(target 参数)注册的所有事件监听器。 这个函数无法删除当前 EventTarget 的所有事件监听器,也无法删除 target 参数所注册的所有事件监听器。 这个函数只能删除 target 参数在当前 EventTarget 上注册的所有事件监听器。
meta | description |
---|---|
定义于 | cocos2d/core/event/event-target.js:163 |
参数列表
target
Object The target to be searched for all related listeners
once
注册事件目标的特定事件类型回调,回调会在第一时间被触发后删除自身。
meta | description |
---|---|
定义于 | cocos2d/core/event/event-target.js:182 |
参数列表
type
String A string representing the event type to listen for.callback
Function The callback that will be invoked when the event is dispatched.The callback is ignored if it is a duplicate (the callbacks are unique).
arg1
Any arg1arg2
Any arg2arg3
Any arg3arg4
Any arg4arg5
Any arg5
target
Object The target (this object) to invoke the callback, can be null
示例
eventTarget.once('fire', function () {
cc.log("this is the callback and will be invoked only once");
}, node);
dispatchEvent
通过事件对象派发事件
meta | description |
---|---|
定义于 | cocos2d/core/event/event-target.js:208 |
参数列表
event
Event
clear
销毁记录的事件
meta | description |
---|---|
定义于 | cocos2d/core/event/event-target.js:221 |