Ejemplo n.º 1
0
void PlayFisicaState::InitFisica() {



	// inicializa a classe de física e a Box2D
	Fisica = CPhysics::instance();
	b2Vec2 g(0,10);
	Fisica->setGravity(g);
	Fisica->setConvFactor(10);

	CSprite *s;
	s = spriteCao;
	fisicaCao = Fisica->newBoxImage(CAO_ID,    //int id,
	                                s,				// CImage* sprite,
	                                1,				// float density,
	                                1.0,			// float friction,
	                                0.0,			// float restitution
	                                false);		// bool staticObj=false
	
	fisicaCao= Fisica->newBox(WALL_ID,
		               s->getX(), s->getY(), // posicao
		               s->getWidth(), s->getHeight(), // tamanho X e Y
					   s->getRotation(),
		               1,   //densidade
		               0.5,    // float friction,
		               0.1,    // float restitution
		               false);  // bool staticObj=false

	//b2Vec2 pos(20,0);
	//Fisica->setPosition(fisicaCao, pos);
	//fisicaCao->SetFixedRotation(true);
	s = spriteCacador;
	fisicaPiso = Fisica->newBoxImage(WALL_ID,    //int id,
	                    s,				// CImage* sprite,
	                    1,						// float density,
	                    0,					// float friction,
	                    0.5,					// float restitution
	                    true);					// bool staticObj=false


	//Fisica->setAngle(fisicaCao, 45);
	//Fisica->setAngle(fisicaPiso, 45);
	//b2Vec2 pos(spriteCao->getX()/10, 100/10);
	//Fisica->setPosition(fisicaPiso, pos);

	//spriteCao->xOffset(spriteCao->getX()/2);

	Fisica->setDrawOffset(spriteCao->getWidth()/2, spriteCao->getHeight()/2);

}
Ejemplo n.º 2
0
void PlayFisicaState::InitFisica() {
	// inicializa a classe de física e a Box2D
	Fisica = CPhysics::instance();
	b2Vec2 g(0,10);
	Fisica->setGravity(g);
	Fisica->setConvFactor(10);

	CSprite *s;
#define CAO
#ifdef CAO
	s = spriteCao;
	fisicaCao = Fisica->newBoxImage(CAO_ID,    //int id,
	                                s,                // CImage* sprite,
	                                1,                // float density,
	                                0.2,            // float friction,
	                                0.0,            // float restitution
	                                0.5,			 // float linearDamping
	                                0.5,			 // float angularDamping
	                                false);        // bool staticObj=false
#endif

#define COBRA
#ifdef COBRA
	s = spriteCobra;
	fisicaCobra = Fisica->newBoxImage(COBRA_ID,    //int id,
	                                  s,                // CImage* sprite,
	                                  1,                // float density,
	                                  0.3,            // float friction,
	                                  0.0,            // float restitution
	                                  0.5,			 // float linearDamping
	                                  0.5,			 // float angularDamping
	                                  false);        // bool staticObj=false
#endif
	Fisica->newBox(OBSTACULO1,    //int id,
	               s->getX() + s->getWidth()*1.4, //pos x
	               s->getY() ,            // pos y
	               s->getWidth()/2,                // width
	               s->getHeight(),            // height
	               0,                // rotation
	               1,              // float density,
	               0.2,            // float friction,
	               0.5,            // float restitution
	               0.5,                // float linearDamping
	               0.5,                // float angularDamping
	               false);          // bool staticObj=false

	Fisica->newCircle(BOLA,
	                  s->getX() + s->getWidth(),
	                  s->getY() + s->getHeight()+ 100,
	                  15, 			   // float radius
	                  1,              // float density,
	                  1.0,            // float friction,
	                  0.5,            // float restitution
	                  0.5,            // float linearDamping
	                  0.5,            // float angularDamping
	                  false);         // bool staticObj=false

	CriaMapDeColisao();
	

	b2RevoluteJointDef jointDef;	

	jointDef.Initialize(fisicaCobra, fisicaCao, fisicaCao->GetWorldCenter());
	Fisica->world->CreateJoint(&jointDef);

}