Показать сообщение отдельно
Старый 22.08.2011, 17:07   #10
Mind
ПроЭктировщик
 
Аватар для Mind
 
Регистрация: 24.02.2011
Сообщений: 188
Написано 13 полезных сообщений
(для 18 пользователей)
Ответ: передвижение с помощью матриц

Все разобрался оказалось даже проще:
void MoveEntity(D3DXMATRIX& m,float dx,float dy,float dz)
{
  
  m._11 = 1;     m._12 = 0;	  m._13 = 0;       m._14 = 0;
  m._21 = 0;     m._22 = 1;      m._23 = 0;       m._24 = 0;
  m._31 = 0;     m._32 = 0;      m._33 = 1;       m._34 = 0;
  m._41 += dx;  m._42 += dy;   m._43 += -dz;  m._44 = 1;

}
Токо после инициализации D3DXMATRIX matView,matViewPos(к примеру)...
нужно обьявлять явно матрици которые инициализированы и токо тогда все будет как надо перемещаться:
НАПРИМЕР:
D3DXMATRIX matWorldPos;

matWorldPos._11 = 1; matWorldPos._12 = 0; matWorldPos._13 = 0; matWorldPos._14 = 0;
matWorldPos._21 = 0; matWorldPos._22 = 1; matWorldPos._23 = 0; matWorldPos._24 = 0;
matWorldPos._31 = 0; matWorldPos._32 = 0; matWorldPos._33 = 1; matWorldPos._34 = 0;
matWorldPos._41 = 0; matWorldPos._42 = 0; matWorldPos._43 = 10; matWorldPos._44 = 1;
dev->SetTransform(D3DTS_WORLD,&matWorldPos);
(Offline)
 
Ответить с цитированием