BO2D说明分析和总结.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Box2D 物理引擎 Box2d 是一个很出名的 2d 物理引擎,大家可以 google 之。Box2d 有 C++,flash 和 Java 等版本。android可以直接使用 java 版本的 Jbox2d,但因为 Jbox2d 的图形渲染是使用 processing 库来实现的,所以, 在 android 中使用 Jbox2d 的时候,图形渲染的工作就只能自己来写了。因为网上关于 box2d 的资料真的非常的少,特别是关于图形绘制方面 package { importflash.display.MovieClip; importBox2D.Dynamics.*; importBox2D.Collision.*; importBox2D.Collision.Shapes.*; importBox2D.Common.Math.*; importflash.events.Event; importflash.display.Sprite; importflash.events.MouseEvent; /** *date:2009.3.18 *BOX2D 测试 *@authorcwin5 * * *全局的对象的构造函数作了三件事情: *1、一个在 b2AABB 类中的实例构建的坐标系统 *2、一个定义重力的向量,这是一个 b2Vec2 类构建的实例。 *3、一个布尔变量来定义对象是否 沉迷。(设置如果你为 true ,对象将会沉迷)。 * *执行 Step() 函数,每一帧都会更新所有的 Body 在 world 中的位置。 * * *虽然现在的 world 中是空的,但是你可以往里面添加任何的球体或者盒子, 以及你想到的任何形状的东西,我们需要定义一个 Body 。 *一个 body 体大概需要做 2-4 件事情: ***1、定义一个形状。 *2、一个( x,y)的位置 *下面的定义可选: *3、角度 *4、一个预制的 Sprite 对象。 * *在 Box2DFlash 的例子中,你可能注意到所有的形状都是简单的。这是因为所有的东西在每一帧都是被线条重绘。 *如果你想在你的游戏或者其他的什么中具有一些有特色的东西,你可以通过综合形状定义 Body 来制作一个 Sprite * *形状的定义,我们有 3 种类型的形状定义,他们都是扩展的 b2ShapeDef 基类。 * *我们先来说 b2BoxDef 类,这个具有 4 个重要的属性: *1、SetAsBox( 设定边框):这是一个向量,本质上说他就是一个形状的中心坐标 *2、Density( 密度):在碰撞的等式中我们使用密度 *面积=质量,密度如果是 0 或者 null, 将会是一个静止的对象。 *3、Friction( 摩擦力):这用来计算两个对象之间的摩擦,你可以在 0.0-1.0 之间调整它们。 *4、Restitution( 弹性): 这是调整对象弹性程度的属性,你可以在 0.0-1.0 之间调整它们。 *b2CircleDef 类中有一个不同的属性,代替 SetAsBox 是他的 Radius( 半径)。 *b2PolyDef 类具有一个顶点数组(最大是 8)来代替 SetAsBox 和 Radius 。这些顶点都是 b2Vec2 类型的对象。 * */ Public class Main extends MovieClip { Public var m_world:b2World;// 世界对象 Public var m_iterations:int=10;// 跌代 Public var m_timeStep:Number=1.0/24.0;// 时间步 Public function Main() { //创建世界边界 Var worldAABB:b2AABB=new b2AABB(); worldAABB.lowerBound.Set(-100.0,-100.0);// 上限worldAABB.upperBound.Set(100.0,100.0);// 下限 //确定重力 Var gravity:b2Vec2=newb2Vec2(0.0,10.0); //允许引擎睡眠 Var doSleep:Boolean=true; //构建一个世界对象 m_world=new b2World(worldAABB,gravity,doSleep);// 边界,重力,睡眠开关 //创建变量 Var body:b2Body; Var bodyDef:b2BodyDef; Var boxDef:b2PolygonDef; Var circleDef:b2CircleDef; //添加地表 bodyDef=new b2BodyDef();// 物体bodyDef.posit

文档评论(0)

tianya189 + 关注
官方认证
文档贡献者

该用户很懒,什么也没介绍

认证主体阳新县融易互联网技术工作室
IP属地上海
统一社会信用代码/组织机构代码
92420222MA4ELHM75D

1亿VIP精品文档

相关文档