2011-04-07 58 views
0

我正在嘗試製作一個球道。
rBallPos正確更新。 以下代碼無法創建 圓柱體作爲球的軌跡。如何 解決它?D3DXCreateCylinder爲什麼不創建圓柱體?

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

小時也是在這裏失敗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); 

需要幫助。

回答

2

您需要傳遞一個指向LPD3DXMESH的指針,因此您的網格參數應該是&ppMeshCylinder而不是ppMeshCylinder。事實上,你的編譯器應該已經警告過你。

更新:嘗試在一個較大的值傳遞給SlicesStacks,比方說5或10這是不可能創建一個圓柱形只有1多邊形網格。

+0

很抱歉我的錯誤在這裏..它是&ppMeshCylinder。它有運行時錯誤。我更新了它。 – Rick2047 2011-04-07 15:39:47

+0

好點..它現在運行沒有任何運行時錯誤和創建網格。現在我無法畫出(我猜)..因爲位置正常。我現在正在做,並且必須在Render()fn中執行。我在做什麼可能是錯誤的?謝謝指出'切片'和'堆棧'。 ...而且,不。這些價值在MS網站的任何地方都沒有解釋..或者我錯過了。並與1片和一疊可以製作一個圓筒,不能(如在MAYA)? – Rick2047 2011-04-08 04:59:37

+0

繪圖時是否出現錯誤? – casablanca 2011-04-08 13:55:34