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
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
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
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
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
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
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
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
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



