PhysicsBody * Player::CreatePlayerBody(WorldManager * wm, float x, float y) { PhysicsBody* playerBody = new PhysicsBody(wm, BODY_DYNAM, x, y, 0); b2FixtureDef playerFixDef; b2PolygonShape boxShape; boxShape.SetAsBox(PLAYER_W / 2.0, PLAYER_H / 2.0); playerFixDef.shape = &boxShape; playerFixDef.density = 1020; playerFixDef.restitution = 0; playerFixDef.filter.groupIndex = -1; playerBody->setFixedRotation(true); playerBody->getBody()->CreateFixture(&playerFixDef); playerBody->setW(PLAYER_W); playerBody->setH(PLAYER_H); playerBody->setBmp(); playerFixDef.density = 1; playerFixDef.friction = 0; boxShape.SetAsBox(PLAYER_W / 20.0, PLAYER_H / 2.0, b2Vec2(-PLAYER_W / 2, 0), 0); playerBody->getBody()->CreateFixture(&playerFixDef); boxShape.SetAsBox(PLAYER_W / 20.0, PLAYER_H / 2.0, b2Vec2(PLAYER_W / 2, 0), 0); playerBody->getBody()->CreateFixture(&playerFixDef); return playerBody; }