//------------------------------------------------------------- //Crea un body estático con un fixture triangular centrado en el origen //------------------------------------------------------------- b2Body* PhysicManager::CreateTriangularStaticBody(b2Vec2 center, float h){ b2Body* body= CreateStaticBody(); b2FixtureDef tri=CreateTriangularFixtureDef(center,h,0.0f,0.0f,0.0f); body->CreateFixture(&tri); return body; }
//------------------------------------------------------------- //Crea un body estático con un fixture circular centrado en el origen //------------------------------------------------------------- b2Body* PhysicManager::CreateCircularStaticBody(float radius){ b2Body* body= CreateStaticBody(); b2FixtureDef cir=CreateCircularFixtureDef(radius,0.0f,0.0f,0.0f); body->CreateFixture(&cir); return body; }
b2World::b2World(const b2AABB& worldAABB, const b2Vec2& gravity, bool doSleep) { m_destructionListener = NULL; m_boundaryListener = NULL; m_contactFilter = &b2_defaultFilter; m_contactListener = NULL; m_debugDraw = NULL; m_bodyList = NULL; m_contactList = NULL; m_jointList = NULL; m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; m_allowSleep = doSleep; m_gravity = gravity; m_lock = false; m_contactManager.m_world = this; void* mem = b2Alloc(sizeof(b2BroadPhase)); m_broadPhase = new (mem) b2BroadPhase(worldAABB, &m_contactManager); b2BodyDef bd; m_groundBody = CreateStaticBody(&bd); }
//------------------------------------------------------------- //Crea un body estático con un fixture rectangular centrado en el origen //------------------------------------------------------------- b2Body* PhysicManager::CreateRectangularStaticBody(float sizeX, float sizeY,float density, float friction, float restitution){ b2Body* body= CreateStaticBody(); b2FixtureDef box=CreateRectangularFixtureDef(sizeX,sizeY,density,friction,restitution); body->CreateFixture(&box); return body; }
b2Body* Game::CreateRectangularStaticBody(b2World *phyWorld, float sizeX, float sizeY){ b2Body* body = CreateStaticBody(phyWorld); b2FixtureDef box = CreateRectangularFixtureDef(sizeX,sizeY,0.0f,0.5f,0.5f); body->CreateFixture(&box); return body; }