Voila le seul élèment que j'ai modifié :
CEventReceiver.cppvoid CEventReceiver::majPosMesh(irr::scene::ICameraSceneNode &camera, bool thirdPerson)
{
if(m_Nmodele != 0 && m_isMoving == true)
{ // Mouvement en cours
core::vector3df c = m_Nmodele->getPosition(); // Position du modele
core::vector3df d = m_Nmodele->getRotation(); // Rotation du modele
float diry = ((d.Y+90)*3.14)/180;
if (touche == irr::KEY_KEY_Z) // Si on veut avancer
{
c.X += speed * cos((d.Y) * 3.14 / 180);
c.Z -= speed * sin((d.Y) * 3.14 / 180);
}
if (touche == irr::KEY_KEY_S) // Si on veut reculer
{
c.X -= speed * cos((d.Y) * 3.14 / 180);
c.Z += speed * sin((d.Y) * 3.14 / 180);
}
if (touche == irr::KEY_KEY_Q) // Si on va a gauche
{
//d.Y -= 0.1;
c.Z += speed * cos((d.Y) * 3.14 / 180);
c.X += speed * sin((d.Y) * 3.14 / 180);
}
if (touche == irr::KEY_KEY_D) // Si on va a droite
{
//d.Y += 0.1;
c.Z -= speed * cos((d.Y) * 3.14 / 180);
c.X -= speed * sin((d.Y) * 3.14 / 180);
}
m_Nmodele->setRotation(d);
int xf = (c.X-sin(diry)*125);
int yf = (c.Z-cos(diry)*125);
int zf = 100;
m_Nmodele->setPosition(c);
m_isMoving = false;
if(!thirdPerson)
camera.setPosition(m_Nmodele->getPosition() + core::vector3df(0,25,0));
}
}
Tous les mouvements fonctionnent ainsi (avancer,reculer,gauche,droite selon la position du curseur de la souris).
Merci Capry, je risque de revenir bientôt pour d'autres problèmes ^^
Bonne journée
