Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
4130 connectés 

 


Dernière réponse
Sujet : [Win] Je comprends pas pourquoi ma caméra tourne pas...
Alload C'est bon j'ai trouvé, en fait j'utilisais une variable entière afin de créer une variable décimal, et donc ça marchait pas... Arf, c'est chiant desfois...

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
Alload C'est bon j'ai trouvé, en fait j'utilisais une variable entière afin de créer une variable décimal, et donc ça marchait pas... Arf, c'est chiant desfois...
Alload Bon, je veux updater l'orientation de ma caméra grâce à la souris, j'ai donc fais une fonction dans ma class CCamera qui s'occupe de prendre les coordonnées de la souris à chaque message WM_MOUSEMOVE et qui tourne en fonction de son déplacement. Le problème, c'est que quand je bouge la souris, desfois ça tourne, mais la plupart du temps ça ne fait rien du tout, donc je comprends pas trop.
 
Voilà les bouts de code:
 
long CALLBACK WndProc(HWND hwnd, UINT message, UINT wParam, long lParam)
{
 switch (message)
 {
 
[......]
 
case WM_MOUSEMOVE:
  g_camera.SetMousePosition(LOWORD(lParam), HIWORD(lParam));
  return 0;
  break;
 
[......]
 
 
Ma class:
 
class CCamera
{
 D3DXMATRIX m_mViewMatrix;
 
 int m_nMouseX;
 int m_nMouseY;
 bool m_bFirst;
 
public:
 CCamera() {D3DXMatrixIdentity(&m_mViewMatrix); m_bFirst = true;}
 ~CCamera() {}
 
 void SetPosition(float x, float y, float z);
 void Translate(double x, double y, double z);
 void Rotate(double x, double y, double z);
 
 void SetMousePosition(int x, int y);
};
 
///////////////////////////////////////////////////////////////////
 
void CCamera::SetMousePosition(int x, int y)
{
 double nDeltaRotX = (x - m_nMouseX) / 100;
 double nDeltaRotY = (y - m_nMouseY) / 100;
 
 m_nMouseX = x;
 m_nMouseY = y;
 
 if (m_bFirst)
  m_bFirst = false;
 
 else
  Rotate(nDeltaRotX, nDeltaRotY, 0);
}

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)