关于从四个方向往一个地方移动后碰撞往后小退的代码
2016-08-04 16:25
381 查看
onCollisionEnter: function (other, self) {
console.log('on collision enter');
// 碰撞系统会计算出碰撞组件在世界坐标系下的相关的值,并放到 world 这个属性里面
var world = self.world;
// 碰撞组件的 aabb 碰撞框
var aabb = world.aabb;
// 上一次计算的碰撞组件的 aabb 碰撞框
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)
cc.log(point.x,point.y)
this.node.setPosition(point)
// 碰撞框的世界矩阵
var t = world.transform;
// 以下属性为圆形碰撞组件特有属性
var r = world.radius;
var p = world.position;
// 以下属性为 矩形 和 多边形 碰撞组件特有属性
var ps = world.points;
},
console.log('on collision enter');
// 碰撞系统会计算出碰撞组件在世界坐标系下的相关的值,并放到 world 这个属性里面
var world = self.world;
// 碰撞组件的 aabb 碰撞框
var aabb = world.aabb;
// 上一次计算的碰撞组件的 aabb 碰撞框
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)
cc.log(point.x,point.y)
this.node.setPosition(point)
// 碰撞框的世界矩阵
var t = world.transform;
// 以下属性为圆形碰撞组件特有属性
var r = world.radius;
var p = world.position;
// 以下属性为 矩形 和 多边形 碰撞组件特有属性
var ps = world.points;
},
相关文章推荐
- 地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子?
- 地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格
- 地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。
- 关于移动设备上GIS系统开发的一个问题(EVC+MapXMobile)
- 一个网页上随鼠标移动显示时钟的javascript 代码
- 一个关于2的n次方的代码(C++)
- 限制窗口只能在一个方向上移动或改变尺寸
- 关于移动设备上GIS系统开发的一个问题(EVC+MapXMobile)
- [Hibernate]关于ID的一个容易混淆的地方
- 一个关于继承关系中静态快、成员变量、构造体代码的执行顺序的Java代码
- 在网页上显示一个会移动的透明时钟的代码。。。
- 一个关于颜色的代码 2007、10、31
- 关于删除代码的一个小伎俩
- 一个关于按地址传递和按值传递区别的代码,给新手
- 在网页上显示一个会移动的透明时钟的代码。。。
- 关于需要互斥的地方的一个好东西(智能锁)
- [原创]一个关于日期比较与排列的代码!
- 又找到一个关于农历的代码
- 关于c++ fstream的一个容易使用出错的地方。
- 关于开一个网络(软件)公司办公地方的选取