Historique des modifications - Message

Message #5281

Sujet: Prob avec la caméra


Type Date Auteur Contenu
Dernière modification 19-12-2008 05:30:28 Dragonblood
Salut

Alors j'ai une caméra FPS que j'active en appuyant sur la touche D

Dans le main: //j'appelle ma fonction lorsque j'appuie sur D
Code : C++

 if  (receiver.Clavier[100].down==1)
        {   
          CameraFPS(device,camera,receiver,curseur);

        }

Ma fonction dans Camera.CPP

Code : C++

vector3df _forward;
curseur->setVisible(false);
position2d<s32> curseurPosition=curseur->getPosition () ;
f32  _theta=-fmod(curseurPosition.X,360) ;
f32 _phi=-fmod(curseurPosition.Y,180) ;

_forward.Y = sin(_phi*M_PI/180);
_forward.X = cos(_theta*M_PI/180);
_forward.Z = sin(_theta*M_PI/180);

camera->setTarget(core::vector3df(camera->getPosition().X+_forward.X, camera->getPosition().Y+_forward.Y, camera->getPosition().Z+_forward.Z));

Lorsque jappuie sur D donc J'ai ma caméra qui bouge en meme temps que la souris.Ca marche trés bien a ce niveaux la. Lorsque je relache la touche D, la caméra reste statique et la souris bouge toute seul cette fois. Jusque la c'est normal

Mon problème c'est que lorsque j'appuie sur D il y a un décalage entre l'endroit ou la souris se trouve et la rotation de la caméra. Par exemple si j'appuie sur D et que mon curseur était en haut à droite a ce moment la ben ma caméra fait tour complet. Je sais pas si vous voyais ce que je veux dire maisje ne veux pas de ce décalage. Mais je ne sais pas comment faire.

merci

++
Création du message 19-12-2008 05:29:06 Dragonblood
Salut

Alors j'ai une caméra FPS que j'active en appuyant sur la touche D

Dans le main: //j'appelle ma fonction lorsque j'appuie sur D
Code : C++

 if  (receiver.Clavier[100].down==1)
        {   
          CameraFPS(device,camera,receiver,curseur);

        }

Ma fonction dans Camera.CPP

Code : C++

vector3df _forward;
curseur->setVisible(false);
position2d<s32> curseurPosition=curseur->getPosition () ;
f32  _theta=-fmod(curseurPosition.X,360) ;
f32 _phi=-fmod(curseurPosition.Y,180) ;

_forward.Y = sin(_phi*M_PI/180);
_forward.X = cos(_theta*M_PI/180);
_forward.Z = sin(_theta*M_PI/180);

camera->setTarget(core::vector3df(camera->getPosition().X+_forward.X, camera->getPosition().Y+_forward.Y, camera->getPosition().Z+_forward.Z));

Lorsque jappuie sur D donc J'ai ma caméra qui bouge en meme temps que la souris.Ca marche trés bien a ce niveaux la. Lorsque je relache la touche D, la caméra reste statique et la souris bouge toute seul cette fois. Jusque la c'est normal

Mon problème c'est que lorsque j'appuie sur D il y a un décalage entre l'endroit ou la souris se trouve et la rotation de la caméra. Par exemple si j'appuie sur D et que mon curseur était en haut à droite a ce moment la ben ma caméra fait tour complet. Je sais pas si vous voyais ce que je veux dire maisje ne veux pas de ce décalage. Mais je ne sais pas comment faire.

merci

++

Retour

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
165 invités en ligne
membre en ligne: -
RSS Feed