Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Box2D/Box2D.h>
- int main (int argc, char * argv[])
- {
- //World/ground initialization code directly lifted from OpenGL project
- b2World * world = new b2World(b2Vec2(-5.0f, -5.0f));
- b2BodyDef bd;
- b2Body * ground = world->CreateBody(&bd);
- b2Vec2 vs[4];
- vs[0].Set(-2640.0f, -2640.0f);
- vs[1].Set(-2640.0f, 2640.0f);
- vs[2].Set(2640.0f, 2640.0f);
- vs[3].Set(2640.0f, -2640.0f);
- b2ChainShape loop;
- loop.CreateLoop(vs, 4);
- b2FixtureDef fd;
- fd.shape = &loop;
- fd.density = 0.0f;
- ground->CreateFixture(&fd);
- //Define two known circles whose values we can print out
- //The initialization code for each circle is directly lifted from the OpenGL project
- b2BodyDef circleDef;
- b2Body * circleBody;
- b2CircleShape circleShape;
- b2FixtureDef circleFixtureDef;
- b2BodyDef circleDef2;
- b2Body * circleBody2;
- b2CircleShape circleShape2;
- b2FixtureDef circleFixtureDef2;
- circleDef.type = b2_dynamicBody;
- circleDef.position.Set(50.0f, 50.0f);
- circleDef.bullet = true;
- circleBody = world->CreateBody(&circleDef);
- circleShape.m_p.Set(50.0f, 50.0f);
- circleShape.m_radius = 50.0f;
- circleFixtureDef.shape = &circleShape;
- circleFixtureDef.density = 1.0f;
- circleFixtureDef.friction = 0.1001f;
- circleDef2.type = b2_dynamicBody;
- circleDef2.position.Set(150.0f, 150.0f);
- circleDef2.bullet = true;
- circleBody2 = world->CreateBody(&circleDef);
- circleShape2.m_p.Set(50.0f, 50.0f);
- circleShape2.m_radius = 50.0f;
- circleFixtureDef2.shape = &circleShape;
- circleFixtureDef2.density = 1.0f;
- circleFixtureDef2.friction = 0.1001f;
- circleBody->CreateFixture(&circleFixtureDef);
- circleBody2->CreateFixture(&circleFixtureDef2);
- //Generate a bunch of other circles
- for (int i = 0; i < 40; i++)
- {
- b2BodyDef circleDef;
- b2Body * circleBody;
- b2CircleShape circleShape;
- b2FixtureDef circleFixtureDef;
- circleDef.type = b2_dynamicBody;
- circleDef.position.Set(50.0f * i, 50.0f * i);
- circleDef.bullet = true;
- circleBody = world->CreateBody(&circleDef);
- circleShape.m_p.Set(50.0f * i, 50.0f * i);
- circleShape.m_radius = 50.0f;
- circleFixtureDef.shape = &circleShape;
- circleFixtureDef.density = 1.0f;
- circleFixtureDef.friction = 0.1001f;
- circleBody->CreateFixture(&circleFixtureDef);
- }
- //Simulate the world for a while
- for (int i = 0; i < 10000; i++)
- {
- world->Step(0.01667f, 10, 10);
- printf("x: %f, y: %f\n", circleBody->GetPosition().x, circleBody->GetPosition().y);
- printf("x: %f, y: %f\n", circleBody2->GetPosition().x, circleBody2->GetPosition().y);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement