码迷,mamicode.com
首页 > 移动开发 > 详细

P2.JS之移动约束(PrismaticConstraint)备忘

时间:2015-02-02 22:49:13      阅读:444      评论:0      收藏:0      [点我收藏+]

标签:

PrismaticConstraint,叫做活塞约束比较好理解,因为,被它约束的物体只能在单一方向作运动。
 
先上段关键代码:
 
1 var p1 = new p2.PrismaticConstraint (holderBody, circleBody, {
2     localAnchorA : [1, -0.5] ,
3     localAnchorB : [0, 0],
4     localAxisA : [0, 1],
5     disableRotationalLock : false
6 });
7 p1.setLimits( 0, 0 );
8 world.addConstraint(p1) ;

 

技术分享
 
矩形里面的那个蓝色的点表示矩形中心吧,截图的时候手动加上去的。
 
先说概念吧,localAnchorA与localAnchorB这里的坐标都是分别相对于物体A和物体B的。这里的物体A即方法传进去的第一个参数holderBody,物体B即circleBody。根据这里传进去的localAnchorA、localAnchorB,可知活塞约束的连接点为矩形的右下角和圆的中心点,即成了如图的样子。
 
localAxisA这个坐标被定义在物体A中,物体B的锚点将可以沿着此轴进行运动(原文:An axis, defined in body A frame, that body B‘s anchor point may slide along)。可以这样理解此坐标为[1,0]或者[-1,0]时,物B沿着水平方向运动;此坐标为[0,1]或者[0,-1]时,物B沿着垂直方向运动。
 
disableRotationalLock,此属性的用处是当设置为true时,物B将能够沿着锚点自由地旋转。这里设置为false是方便把约束给固定住。
 
setLimits(xx,xx) 方法可以设置约束的自由行动范围。这里写成setLimits(0, 0)是方便把约束给固定住。这个方法可以用来查看localAxisA所设置的约束行动轴。
 
反正多练习多实验吧。
 
 
p2.js v0.6.0 的压缩包,链接:http://pan.baidu.com/s/1mgsW7xA 密码:bj85
p2.js 的Github地址:https://github.com/schteppe/p2.js
 
参考:

P2.JS之移动约束(PrismaticConstraint)备忘

标签:

原文地址:http://www.cnblogs.com/yxzblue/p/4268722.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!