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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: 哈哈镜类似ps球面化滤镜源码+原理下一篇: 鼠标键盘对场景或者场景中MC分别加以监听收录
关于Box2D入门基础之一的所有评论