读书人

BOX2d根本流程

发布时间: 2012-09-29 10:30:01 作者: rapoo

BOX2d基本流程
在cocos2d要使box2D不,但必需要遵一些基本的法,其他的就不用管了,引擎很明的,它自己手去完成接下的碰撞算.
OK,始介box2d的奇幻物理世界:
1、即然世界然第一部就是建立一世界容器,在box2d建立一世界只有一方法,就是定一世界:b2AABB 世界就是整box2d 的window,了防止在世界的物跑,所以必需定上下界的lowerbound 和 upbound(定的就像人失去重力一在外太空漂啊漂的).
b2AABB worldAABB;
worldAABB.lowerBound.Set(-100.0f, -100.0f);
worldAABB.upperBound.Set(100.0f, 100.0f);

2、如同1、所言像在外太空漂啊漂,所以我接著就要定重力,依牛超牛人所言,重力是向量的一,所以它有方向性:b2vec2(0.0f,-10.0f);
然我有了重力,但我搞研的都清楚,凡事有例外,所以了有些物就啊的就跑到界外了,所以了理例外的生,我就需要定
  BOOL doSleep=TURE;
段的意思是物出界,就物就入睡眠,box2D不要去理它就好。
3、我2、的2定是因世界容器就如同一空白的而定世界容器就是定一空,所以才需要有上下界的原因,而定重力的是了定自由落的方向,免得一物在由碰撞后,也就是在世界空的全部物件都向同一方向落下。

4、有了上述的的世界空的就如同在地球上的感,所以我需要再加上一地表的,做一平台,因我地表是因它是永久不的,然的地球是一直,所以我才叫奇幻世界,在奇幻世界地表是不的。在box2D不的物件就叫物件,表示物件不俱碰撞制,因去碰它就倒霉不是?
定一地表域:

b2BodyDef groundBoyDef;
groundBoyDef.Position.Set(0.0f, -10.0f); //何要0.0,-10.0f,我去深究它,我只是照抄而以,打我

5、接下我要做的事就是地表物加到世界容器,在box2d加物都是用一方式:
b2Body* groundBoy = world.CreateBody(&groundBoyDef);
↑       ↑           ↑
物名 世界容器物件 加什物
6、ok我加了地表物件了,即然有地表然需要一外形:
b2PolygroundDef groundShapeDef;//定一多形
groundShapeDef.SetAsBox(50.0f,10.0f);//SetAsBox定一矩形外形
在box2D在外形的支援上只有3,,和多形,我SetAsBox(x,y),上的大小要乘上2倍才是值,所以(50.0f,10.0f) x=100 y=20;
有一box2D使用kms制的物理位 米.公斤
7、再外形加到地表物件,有像理很像,所以可以了解到每物都有外形,也就是外形是法存在世界容器里。
  groundBoy->CreateShape(&groundShapeDef);
到我的世界容器就算建立完成了,但只是一止的世界而以。
8、在4、,我加了一地表物(物),所以一定有一相物>物,答了。大家都好害利,拍手
  建立的方法物很相似<是相似,不是一哦
b2BodyDef bodyDef;
bodyDef.position.Set(0.0f,4.0f);
b2Body *body=wold.CreateBody(&bodyDef);
疑!一的程啊,那是然的物也是物啊。
  再不一的地方了哦
  b2PolygonDef ShapeDef;
ShapeDef.SetAsBox(1.0f,1.0f);
ShapeDef.density=1.0f;<定物的密度,是物最大的差,就是0:物
ShapeDef.friction=0.3f;<定物的摩擦力
body->CreateShape(&ShapeDef);
Body->SetMassFromeShape();<定物 哈哈,很厉害啊 路过学习全收下了@^@

读书人网 >移动开发

热点推荐