Revolute Joints(转动关节)
选取任意两个刚体就可以创建一个转动关节,且一个刚体的质量要为0。
要创建转动关节,需调用关节定义的Initialize方法:
public function Initialize(b1:b2Body, b2:b2Body, anchor:b2Vec2) : void
前两个参数表示要组成关节的刚体,第三个参数表示关节的节点位置。
在刚体创建完成后即可以创建关节,此关节只需创建一次,不像鼠标关节(b2MouseJoint)在模拟过程中要不断设置目标,而此关节在执行模拟过程中无需处理。
下面是核心代码:
var revRect:Rect = new Rect(20, 200, new Point(300, 200), new Point(0, 0), new RectSprite(), _container); var revCircle:Ball = new Ball(10, new Point(300, 50), new Point(0, 0), new CircleSprite(), _container); var massData:b2MassData = new b2MassData(); massData.mass = 0; revCircle.body.SetMass(massData); _revoluteJointDef.Initialize(revCircle.body, revRect.body, new b2Vec2(300/PhyOption.PHYSCALE,50/PhyOption.PHYSCALE)); _revJoint = PhyOption.getInstance().world.CreateJoint(_revoluteJointDef) as b2RevoluteJoint; _container.graphics.clear(); _container.graphics.lineStyle(2, 0xff0000); _container.graphics.moveTo(revCircle.displayObject.x, revCircle.displayObject.y); _container.graphics.lineTo(revRect.displayObject.x, revRect.displayObject.y-revRect.displayObject.height/2);
例子:
作者:ywxgod
E-mail:给我发邮件
出处:http://ywxgod.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
E-mail:给我发邮件
出处:http://ywxgod.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。