D3DXMatrixTranslation的问题

我贴了一个X文件,想按左键的时候让它用D3DXMatrixTranslation的办法让他平移
于是添加了
D3DXMATRIX W;
if( ::GetAsyncKeyState(VK_RIGHT) & 0x8000f )
D3DXMatrixTranslation(&W,1.0f,0.0f,0.0f);
Device->SetTransform(D3DTS_WORLD, &W);
结果X文件被撕裂了。。变成乱七八糟的图形,
去掉if( ::GetAsyncKeyState(VK_RIGHT) & 0x8000f )后正常。。这是怎么回事啊。。。
求指教

作者: kgstation   发布时间: 2011-06-10

去掉if( ::GetAsyncKeyState(VK_RIGHT) & 0x8000f )是什么意思?
D3DXMatrixTranslation(&W,1.0f,0.0f,0.0f)也跟着去掉了吗?
如果也跟着去掉了,那么矩阵W就是未初始化的不正确的值,用这个不正确的矩阵去旋转模型,渲染的结果就会混乱了。

作者: Silenker   发布时间: 2011-06-12

加上括号试试

C/C++ code
if( ::GetAsyncKeyState(VK_RIGHT) & 0x8000f )
{
    D3DXMatrixTranslation(&W,1.0f,0.0f,0.0f);
    Device->SetTransform(D3DTS_WORLD, &W);
}

作者: ilysony   发布时间: 2011-06-12