admin 管理员组

文章数量: 894198

认识box2d世界

b2world是Box2D系统模拟物理世界的核心,可以想象成我们的地球。地球上有各种不同的物理环境,如水中漂浮的小船,太空中失重的宇航员等等。同样在Box2D世界中也要有一个环境,这在Box2D中用b2AABB类表示,如下:var b2AB:b2AABB = new b2AABB();

现实中的世界是无穷无尽的,但是我们看到的是有限的,所以Box2D中也要限制一下环境的大小,因为我们看到的是有限的嘛!我猜你可能跟我一样,提到到大小想到的是肯定width和height,而Box2D中的大小是通过设置两个对角顶点upperBound和lowerBound实现的,如下图:

 

代码如下:

b2AB . lowerBound . Set ( - 100 , - 100 ) ;              b2AB . upperBound . Set ( 100 , 100 ) ; 环境设置好了,重力也是少不了的,否则我们就都飘在空中了。同样,Box2D世界中也少不了:

var gravity:b2Vec2 = new b2Vec2(0, 10);

Box2D毕竟只是个物理引擎,我们也要考虑到效率问题,所以对于静止不懂的对象,最好是不要进行模拟计算,节省CPU开支,这种静止的对象在Box2D中叫做"睡着了"

var doSleep:Boolean = true;

这样,环境变量设置好后,就可以new出一个Box2D世界了。

var world:b2World = new b2World(b2AB,gravity, doSleep);

本文标签: 认识box2d世界