E
Hi
Ich bin nun daran am Programmieren einer Kamerasteuerung. Doch irgendwie geht diese nicht zum Bewegen. Warum?
Hier ist ein Codeausschnitt:
void CGame::Render()
{
g_pD3D->d3ddev->Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0, 0, 0), 1.0f, 0);
g_pD3D->d3ddev->Clear(0, NULL, D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB(0, 0, 0), 1.0f, 0);
g_pD3D->d3ddev->SetRenderState(D3DRS_LIGHTING, TRUE);
g_pD3D->d3ddev->SetRenderState(D3DRS_ZENABLE, TRUE);
g_pD3D->d3ddev->SetRenderState(D3DRS_FILLMODE, D3DFILL_SOLID);
g_pD3D->d3ddev->BeginScene();
pCamera->AdjustCamera(&vCameraPosition, &D3DXVECTOR3(sinf(CameraAngle),
0.0f,
cosf(CameraAngle)));
g_pD3D->d3ddev->SetFVF(FVF3D);
g_pD3D->d3ddev->SetRenderState(D3DRS_LIGHTING, FALSE);
g_pD3D->d3ddev->SetRenderState(D3DRS_ZENABLE, FALSE);
g_pD3D->d3ddev->SetRenderState(D3DRS_ZWRITEENABLE, FALSE);
D3DXMatrixRotationX(&mRotation, fRotation);
g_pD3D->d3ddev->SetTransform(D3DTS_WORLD, &mRotation);
g_pD3D->d3ddev->SetTexture(0, pEnvoirment);
// SkyBox
//
g_pD3D->d3ddev->DrawIndexedPrimitiveUP(D3DPT_TRIANGLELIST,
0,
8,
12,
pSkyBoxIndices,
D3DFMT_INDEX16,
pSkyBoxVertices,
sizeof(VERTEX3D));
g_pD3D->d3ddev->SetTexture(0, NULL);
g_pD3D->d3ddev->SetFVF(CUSTOMFVF);
// Block
//
g_pD3D->d3ddev->SetTexture(0, pBlockTexture);
pBlockModel->DrawModel(&Block, 0.0f, 0.0f, 0.0f);
g_pD3D->d3ddev->SetTexture(0, NULL);
FontPosition.top = 100;
FontPosition.left = 0;
FontPosition.right = SCREEN_WIDTH;
FontPosition.bottom = SCREEN_HEIGHT;
pFont->DrawText(NULL,L"SecondChance", -1, &FontPosition, DT_CENTER, D3DCOLOR_XRGB(255, 255, 255));
g_pD3D->d3ddev->SetRenderState(D3DRS_LIGHTING, TRUE);
g_pD3D->d3ddev->SetRenderState(D3DRS_ZENABLE, TRUE);
g_pD3D->d3ddev->SetRenderState(D3DRS_ZWRITEENABLE, TRUE);
g_pD3D->d3ddev->EndScene();
g_pD3D->d3ddev->Present(NULL, NULL, NULL, NULL);
}
void CGame::Move()
{
pInput->GetKeys(&Keys[0]);
pInput->GetMouse(&Mouse);
vCameraDirection = D3DXVECTOR3(sinf(CameraAngle), 0.0f, cosf(CameraAngle));
if(Keys(DIK_RIGHT))
{
CameraAngle -= D3DXToRadian(45);
}
else if(Keys[DIK_RIGHT])
{
CameraAngle += D3DXToRadian(45);
}
else if(Keys(DIK_UP))
{
vCameraPosition += vCameraDirection * 5.0f;
}
else if(Keys[DIK_DOWN])
{
vCameraPosition -= vCameraDirection * 5.0f;
}
}
Warum funktioniert diese Kamera nicht?
Kann mir jemand helfen?
Gruss Patrick