快速业务通道

Box2D入门基础之一

作者 佚名技术 来源 服务器技术 浏览 发布时间 2012-07-07
hape=newb2CircleDef();
circleShape.density=7;
circleShape.friction=0.2;
circleShape.restitution=0.2;
circleShape.radius=radius/rate;
bodyDef=newb2BodyDef();
bodyDef.userData=newBall(radius,0xffffff*Math.random());
//bodyDef.userData.width=radius*2;
//bodyDef.userData.height=radius*2;
bodyDef.position.Set(xPos/rate,yPos/rate);
body=world.CreateBody(bodyDef);
body.CreateShape(circleShape);
body.SetMassFromShapes();
addChild(bodyDef.userData);
}

privatefunctiononFrame(e:Event):void
{
world.Step(m_timeStep,m_iteration);
for(varb:b2Body=world.m_bodyList;b;b=b.m_next)
{
if(b.m_userDataisSprite)
{
b.m_userData.x=b.GetPosition().x*rate;
b.m_userData.y=b.GetPosition().y*rate;
b.m_userData.rotation=b.GetAngle()*180/Math.PI;
}
}
}
}

} 说明:Box2D会自动管理各个物体的碰撞,弹跳等物理状态,我们只需要创建各种刚体。创建刚体可以通过b2BodyDef.userData来创建。b2Shape.SetAsBox(width,height)指的是物体的半宽和半高,所以在计算时都要乘以2。由于Box2D本身的限制,运算时要进行长度换算。 代码中的Box和Ball类都是注册中心在其几何中心,我就不提供代码了,这两个类主要是画矩形和圆形,很简单大家自己写。你也可以在FlashIDE中画出自己的方形和圆形来,然后给一个类名,然后从库里链接。 关键词:

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号