//定义速度为5
manager.enabledDebugDraw = true;
onCollisionEnter: function (other, self) {
console.log('on collision enter');
//使对象实现重复碰撞
this.num *= 1;
// 碰撞系统会计算出碰撞组件在世界坐标系下的相关的值,并放到 world 这个属性里面
var world = self.world;
// 碰撞组件的 aabb 碰撞框
var aabb = world.aabb;
// 上一次计算的碰撞组件的 aabb 碰撞框
var preAabb = world.preAabb;
// 碰撞框的世界矩阵
var t = world.transform;
// 以下属性为圆形碰撞组件特有属性
var r = world.radius;
var p = world.position;
// 以下属性为 矩形 和 多边形 碰撞组件特有属性
var ps = world.points;
var preAabb = world.preAabb;
var r = world.radius;
var point = cc.p(preAabb.x, preAabb.y)
cc.log(aabb.x,aabb.y,preAabb.x,preAabb.y)
var offsetX = aabb.x - preAabb.x
var offsetY = aabb.y - preAabb.y
if(offsetX!=0)offsetX = offsetX/Math.abs(offsetX)*2
if(offsetY!=0)offsetY = offsetY/Math.abs(offsetY)*2
point = cc.pAdd(cc.p(preAabb.x,preAabb.y), cc.p(r-offsetX,r-offsetY))
point = this.node.parent.convertToNodeSpaceAR(point)
this.node.setPosition(point)
},
/**
* 当碰撞产生后,碰撞结束前的情况下,每次计算碰撞结果后调用
* @param {Collider} other 产生碰撞的另一个碰撞组件
* @param {Collider} self 产生碰撞的自身的碰撞组件
*/
onCollisionStay: function (other, self) {
console.log('on collision stay');
},
/**
* 当碰撞结束后调用
* @param {Collider} other 产生碰撞的另一个碰撞组件
* @param {Collider} self 产生碰撞的自身的碰撞组件
*/
onCollisionExit: function (other, self) {
console.log('on collision exit');
},
// called every frame, uncomment this function to activate update callback
this.node.x += this.num
}
},
this.num = 5;
//获取碰撞接口
var manager = cc.director.getCollisionManager();
//显示碰撞系统
manager.enabled = true;manager.enabledDebugDraw = true;
onCollisionEnter: function (other, self) {
console.log('on collision enter');
//使对象实现重复碰撞
this.num *= 1;
// 碰撞系统会计算出碰撞组件在世界坐标系下的相关的值,并放到 world 这个属性里面
var world = self.world;
// 碰撞组件的 aabb 碰撞框
var aabb = world.aabb;
// 上一次计算的碰撞组件的 aabb 碰撞框
var preAabb = world.preAabb;
// 碰撞框的世界矩阵
var t = world.transform;
// 以下属性为圆形碰撞组件特有属性
var r = world.radius;
var p = world.position;
// 以下属性为 矩形 和 多边形 碰撞组件特有属性
var ps = world.points;
var preAabb = world.preAabb;
var r = world.radius;
var point = cc.p(preAabb.x, preAabb.y)
cc.log(aabb.x,aabb.y,preAabb.x,preAabb.y)
var offsetX = aabb.x - preAabb.x
var offsetY = aabb.y - preAabb.y
if(offsetX!=0)offsetX = offsetX/Math.abs(offsetX)*2
if(offsetY!=0)offsetY = offsetY/Math.abs(offsetY)*2
point = cc.pAdd(cc.p(preAabb.x,preAabb.y), cc.p(r-offsetX,r-offsetY))
point = this.node.parent.convertToNodeSpaceAR(point)
this.node.setPosition(point)
},
/**
* 当碰撞产生后,碰撞结束前的情况下,每次计算碰撞结果后调用
* @param {Collider} other 产生碰撞的另一个碰撞组件
* @param {Collider} self 产生碰撞的自身的碰撞组件
*/
onCollisionStay: function (other, self) {
console.log('on collision stay');
},
/**
* 当碰撞结束后调用
* @param {Collider} other 产生碰撞的另一个碰撞组件
* @param {Collider} self 产生碰撞的自身的碰撞组件
*/
onCollisionExit: function (other, self) {
console.log('on collision exit');
},
// called every frame, uncomment this function to activate update callback
update: function (dt) {
//每一帧调用使对象在X轴移动
if(this.node.x < 0){this.node.x += this.num
}
},