我创建了一个Box2D的世界。
世界的重力是竖直向下为5
//世界
b2Vec2 gravity;
gravity.Set(0.0f, -5.0f);//设置重力加速度,X轴0,Y轴竖直向下为5
_world = new b2World(gravity,true);
//下方边界
b2BodyDef groundDef;
groundDef.position.Set(0, 0);//设置质心点
b2Body * groundBody = _world -> CreateBody(&groundDef);
b2PolygonShape groundShape;//设置地板刚体的形状
groundShape.SetAsEdge(b2Vec2(0, 87/PTM_RATIO), b2Vec2(screenSize.width/PTM_RATIO,87/PTM_RATIO));
groundBody->CreateFixture(&groundShape, 0);
//在天空上加了一只小鸟
b2BodyDef ballBodyDef;
ballBodyDef.type = b2_dynamicBody;
ballBodyDef.position.Set(self.position.x/PTM_RATIO, self.position.y/PTM_RATIO);
NSLog(@"%lf,%lf",ballBodyDef.position.x,ballBodyDef.position.y);
ballBodyDef.userData = self;
b2Body *ballBody = world->CreateBody(&ballBodyDef);
然后为世界加了一个定时器,实现刚体移动,小鸟也移动。
按道理说,小鸟应该竖直向下掉落到地板啊,然后小鸟没有动。
一开始我以为是刚体和小鸟未链接,但是我发现刚体本身的位置也没有改变,也就是刚体没有受到世界的竖直向下的重力 因素。。 请问要如何解决??