Jump to content

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


RhaQ

Recommended Posts

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 to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...