本文整理汇总了C++中b2World::SetGravity方法的典型用法代码示例。如果您正苦于以下问题:C++ b2World::SetGravity方法的具体用法?C++ b2World::SetGravity怎么用?C++ b2World::SetGravity使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类b2World
的用法示例。
在下文中一共展示了b2World::SetGravity方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: createWorld
void createWorld (b2World& world) {
world.SetGravity(b2Vec2(0, 0));
float k_restitution = 0.4f;
b2Body * ground;
{
b2BodyDef bd;
bd.position.Set(0, 20);
ground = world.CreateBody(&bd);
b2PolygonShape * shape = new b2PolygonShape;
b2FixtureDef sd;
sd.shape = shape;
sd.density = 0;
sd.restitution = k_restitution;
shape->SetAsEdge(b2Vec2(-20, -20), b2Vec2(-20, 20));
ground->CreateFixture(&sd);
shape->SetAsEdge(b2Vec2(20, -20), b2Vec2(20, 20));
ground->CreateFixture(&sd);
shape->SetAsEdge(b2Vec2(-20, 20), b2Vec2(20, 20));
ground->CreateFixture(&sd);
shape->SetAsEdge(b2Vec2(-20, -20), b2Vec2(20, -20));
ground->CreateFixture(&sd);
delete shape;
}
{
b2Transform xf1;
xf1.Set(b2Vec2(0,0), 0.3524f * (float)gdx_cpp::math::utils::detail::PI);
xf1.Set(b2Mul(xf1, b2Vec2(1, 0)), xf1.GetAngle());
b2Vec2 vertices[3];
vertices[0] = b2Mul(xf1, b2Vec2(-1, 0));
vertices[1] = b2Mul(xf1, b2Vec2(1, 0));
vertices[2] = b2Mul(xf1, b2Vec2(0, 0.5f));
b2PolygonShape * poly1 = new b2PolygonShape();
poly1->Set(&vertices[0] , 3);
b2FixtureDef sd1;
sd1.shape = poly1;
sd1.density = 4.0f;
b2Transform xf2;
xf2.Set(b2Vec2(), -0.3524f * (float)gdx_cpp::math::utils::detail::PI);
xf2.Set(b2Mul(xf2, b2Vec2(-1, 0)), xf2.GetAngle());
vertices[0] = b2Mul(xf2, b2Vec2(-1, 0));
vertices[1] = b2Mul(xf2, b2Vec2(1, 0));
vertices[2] = b2Mul(xf2, b2Vec2(0, 0.5f));
b2PolygonShape * poly2 = new b2PolygonShape();
poly2->Set(&vertices[0], 3);
b2FixtureDef sd2;
sd2.shape = poly2;
sd2.density = 2.0f;
b2BodyDef bd;
bd.type = b2_dynamicBody;
bd.angularDamping = 5.0f;
bd.linearDamping = 0.1f;
bd.position.Set(0, 2);
bd.angle = (float)gdx_cpp::math::utils::detail::PI;
bd.allowSleep = false;
m_body = world.CreateBody(&bd);
m_body->CreateFixture(&sd1);
m_body->CreateFixture(&sd2);
delete poly1;
delete poly2;
}
{
b2PolygonShape * shape = new b2PolygonShape();
shape->SetAsBox(0.5f, 0.5f);
b2FixtureDef fd;
fd.shape = shape;
fd.density = 1.0f;
fd.friction = 0.3f;
for (int i = 0; i < 10; i++) {
b2BodyDef bd;
bd.type = b2_dynamicBody;
bd.position.Set(0, 5 + 1.54f * i);
b2Body * body = world.CreateBody(&bd);
body->CreateFixture(&fd);
float gravity = 10.0f;
float I = body->GetInertia();
float mass = body->GetMass();
//.........这里部分代码省略.........