[Win] Je comprends pas pourquoi ma caméra tourne pas...

Je comprends pas pourquoi ma caméra tourne pas... [Win] - Programmation

Marsh Posté le 15-12-2001 à 21:30:02    

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);
}

Reply

Marsh Posté le 15-12-2001 à 21:30:02   

Reply

Marsh Posté le 16-12-2001 à 11:05:29    

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

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed