Exemplo n.º 1
0
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;
}