首页 > 代码库 > P2.JS之移动约束(PrismaticConstraint)备忘
P2.JS之移动约束(PrismaticConstraint)备忘
PrismaticConstraint,叫做活塞约束比较好理解,因为,被它约束的物体只能在单一方向作运动。
先上段关键代码:
1 var p1 = new p2.PrismaticConstraint (holderBody, circleBody, {2 localAnchorA : [1, -0.5] ,3 localAnchorB : [0, 0],4 localAxisA : [0, 1],5 disableRotationalLock : false6 });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所设置的约束行动轴。
反正多练习多实验吧。
此处练习的源码地址:https://gist.github.com/yxzblue/3a66babfb93b889f0833#file-prismaticconstraint-html
p2.js v0.6.0 的压缩包,链接:http://pan.baidu.com/s/1mgsW7xA 密码:bj85
p2.js 的Github地址:https://github.com/schteppe/p2.js
参考:
http://www.cnblogs.com/Just-go/archive/2012/03/19/2405778.html
P2.JS之移动约束(PrismaticConstraint)备忘
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。