为什么D3DXCreateCylinder没有创建圆柱体?

时间:2011-04-07 15:31:30

标签: c++ directx

  

我正试图制作一个球跟踪   rBallPos正在更新。   以下代码无法创建   一个圆柱体作为球的踪迹。如何   解决它?

LPD3DXMESH /*ID3DXMesh*/ ppMeshCylinder = NULL;
hr = D3DXCreateCylinder(g_d3d_device,0.1f,0.1f,0.1f,1,1,&ppMeshCylinder,0);

hr在这里也失败了hr!= D3D_OK

D3DXMATRIX cylinder, cylinder2, cylinderRotate, cylinderTrans;
D3DXMatrixRotationX(&cylinderRotate, 1.5f);
D3DXMatrixTranslation(&cylinderTrans, rBallPos.fX, rBallPos.fY, rBallPos.fZ);
D3DXMatrixMultiply(&cylinder, &cylinderRotate, &cylinderTrans);
g_d3d_device->SetTransform(D3DTS_WORLD, &cylinder);
ppMeshCylinder->DrawSubset(0);

需要帮助。

1 个答案:

答案 0 :(得分:2)

您需要传入指向LPD3DXMESH的指针,因此您的网格参数应为&ppMeshCylinder而不是ppMeshCylinder。实际上,您的编译器应该已经警告过您。

更新:尝试为SlicesStacks传递更大的值,例如5或10.无法创建仅包含1个多边形的圆柱网格。< / p>