Skocz do zawartości

[C++] Problem z obracaniem modelu za pomocą klawiatury


RhaQ

Polecane posty

Cześć!

 

Zabawę z DirectX zacząłem niedawno (tak jak z całym programowaniem w C++) i wszystko szło gładko, do czasu gdy zachciało mi się dodać obsługę klawiatury do mojego modelu 3D.

Otóż za pomocą określonych klawiszy użytkownik miał mieć możliwość obrotu modelu względem wybranej osi (używam do tego DirectInput).

 

W jednym kierunku wszystko działa, natomiast gdy dodaję kolejny, to reaguje tylko na jeden z nich. Poniżej zamieszczam fragment kodu odpowiedzialny za całe to zamieszanie.

Kod jest czytelny dla doświadczonego programisty...

 

        static float rotX = 0.0f;
       if(keystate[DIK_UP] && keystate[DIK_LCONTROL] & 0x80)
       rotX -= 0.03f;
   if(keystate[DIK_DOWN] && keystate[DIK_LCONTROL] & 0x80)
       rotX += 0.03f;

       D3DXMATRIX matRotateX;
   D3DXMatrixRotationX(&matRotateX, rotX);
   d3ddev->SetTransform(D3DTS_WORLD, &(matRotateX));


       static float rotY = 0.0f;
       if(keystate[DIK_LEFT] && keystate[DIK_LCONTROL] & 0x80)
       rotY -= 0.03f;
   if(keystate[DIK_RIGHT] && keystate[DIK_LCONTROL] & 0x80)
       rotY += 0.03f;

   D3DXMATRIX matRotateY; 
   D3DXMatrixRotationY(&matRotateY, rotY);
   d3ddev->SetTransform(D3DTS_WORLD, &(matRotateY));

 

Kombinowałem już na różne sposoby, ale brakuje mi skilla.

Link do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

×
×
  • Utwórz nowe...