#1 

28-08-2008 17:37:24

bestben
Membres
Date d'inscription:
Messages: 133
IP: 77.193.33.145
Courriel

Bonjour,
mon problème est que lorsque quand le programme arrive sur smgr->drawAll() mes coordonnées change toutes seul
par exemple si mes coordonnées sont 100,100,100 elle deviennent 21.1662, 15.9882, 21.9132
voici mon bout de code :

    MyGraphe->LoadWorld();
    MyEvent = new NJeux::Event(MyGui->getFen_Menu(), m_device, m_smgr, MyGraphe->getCameraFPS(), MyGraphe->getCamera());
    MyPhysique->CreateWorld(MyGraphe->getCameraFPS(), MyGraphe->getNMap(), MyGraphe->getMap());
    m_device->setEventReceiver(MyEvent);
    if(m_CamPos.X || m_CamPos.Y || m_CamPos.Z)
    { 
    MyGraphe->getCameraFPS()->setPosition(irr::core::vector3df(m_CamPos.X, m_CamPos.Y, m_CamPos.Z));
    MyGraphe->getCamera()->setPosition(irr::core::vector3df(m_CamPos.X, m_CamPos.Y, m_CamPos.Z));
    std::cout << m_CamPos.X << " " << m_CamPos.Y << " " << m_CamPos.Z << std::endl; 
    }
    std::cout << MyGraphe->getCameraFPS()->getPosition().X << " " << MyGraphe->getCameraFPS()->getPosition().Y << " " << MyGraphe->getCameraFPS()->getPosition().Z << std::endl;
    int i = 0;
    while(m_device->run())
    {
    m_driver->beginScene(true, true, irr::video::SColor(0,200,200,200));
    MyGraphe->UpDate();
    MyGui->Update(MyGraphe->getCameraFPS());
    m_smgr->drawAll();
        if(i != 1)
    {
        std::cout << MyGraphe->getCameraFPS()->getPosition().X << " " << MyGraphe->getCameraFPS()->getPosition().Y << " " << MyGraphe->getCameraFPS()->getPosition().Z << std::endl;
      i = 1;
    }
    m_gui->drawAll();
    m_driver->endScene();
    }

j'ai regardé dans la fonction drawAll() et j'y voit rien qui puisse changer mes coordonnées
Si quelqu'un sait d'où sa peut venir je dit pas non ^^


Hors ligne


#2 

28-08-2008 17:56:59

dark calculator
Membres
Date d'inscription:
Messages: 153
IP: 82.67.201.37
Courriel

salut

Le probleme vient surement de ton MyGui->update(); envoie le code, à moin que tu es vérifié avec printf entre mygui->update et le drawall

dark caluclator


Hors ligne


#3 

28-08-2008 18:05:35

bestben
Membres
Date d'inscription:
Messages: 133
IP: 77.193.33.145
Courriel

Oui j'ai vérifié entre MyGui->update() et drawAll()


Hors ligne


#4 

28-08-2008 18:09:58

dark calculator
Membres
Date d'inscription:
Messages: 153
IP: 82.67.201.37
Courriel

Et tu n'a pas une animation applique a ta camera comme un gestionnaire de collision ou autre ?
C'est la derniere solution si non je vois pas.


Hors ligne


#5 

28-08-2008 18:55:58

bestben
Membres
Date d'inscription:
Messages: 133
IP: 77.193.33.145
Courriel

Effectivement le problème vient des collisions ou plutôt de

 m_ColisionAnim = m_smgr->createCollisionResponseAnimator(
		metaSelector, m_CameraFPS, irr::core::vector3df(30,60,30),
		irr::core::vector3df(0,-100.0f,0),
		irr::core::vector3df(0,0,0));

Voici le prototype de createCollisionResponseAnimator
virtual ISceneNodeAnimatorCollisionResponse* irr::scene::ISceneManager::createCollisionResponseAnimator  (  ITriangleSelector *  world,  
  ISceneNode *  sceneNode,  
  const core::vector3df &  ellipsoidRadius = core::vector3df(30, 60, 30),  
  const core::vector3df &  gravityPerSecond = core::vector3df(0,-100.0f, 0),  
  const core::vector3df &  ellipsoidTranslation = core::vector3df(0, 0, 0),  
  f32  slidingValue = 0.0005f 
 )

si j'ai bien compris:
ellipsoidRadius est le rayon dans lequel les collision seront effectuées
gravityPerSecond représente la "force" qui va s'exercer sur le node
par contre est ce que quelqu'un peut m'expliquer à quoi servent ellipsoidTranslation et slidingValue


Hors ligne


#6 

28-08-2008 19:40:30

dark calculator
Membres
Date d'inscription:
Messages: 153
IP: 82.67.201.37
Courriel

re

ellipsoidRadius correspond a l'ellipse qui va englober ta camera et les collisions seront calculer a partir de cette elipse. Par default elle est placé au centre de la camera mais par exemple un homme n'a pas les yeux au milieu du ventre c'est pourquoi on peut deplacer l'ellipse avec ellipsoidTranslation.

Quand à un sliding value je ne sais pas car la doc est muette sur le sujet

dark calculator


Hors ligne


#7 

28-08-2008 23:36:07

bestben
Membres
Date d'inscription:
Messages: 133
IP: 77.193.33.145
Courriel

Ok merci pour la précision


Hors ligne


#8 

29-08-2008 05:47:05

dark calculator
Membres
Date d'inscription:
Messages: 153
IP: 82.67.201.37
Courriel

Tu as toujours ton probleme ou c'est bon ?


Hors ligne


#9 

29-08-2008 11:30:21

bestben
Membres
Date d'inscription:
Messages: 133
IP: 77.193.33.145
Courriel

Non c'est bon c'est résolu, je c'est pas trop comment ^^
j'ai juste changé les vecteurs
Merci pour tes réponses


Hors ligne


Options Liens officiels Caractéristiques Statistiques Communauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1440 sujets
11337 messages
Dernier membre inscrit: Saidov17
175 invités en ligne
membre en ligne: -
RSS Feed