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); }
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); }