[DirectX] Objekt bewegen - Problem



  • Hallo!

    Ich bin DirectX-Anfänger und habe bereits geschafft ein Objekt aus einem .x-File zu laden und zu verschieben 🕶
    Doch bei meinem zweiten Versuch funktioniert das Transformieren nicht...
    Wahrscheinlich ist es nur ein kleiner Fehler, aber ich kann ihn nicht finden.

    Der (vereinfachte) Code:

    // Zuerst wird ein Mesh mit Textur geladen. Das funktioniert problemlos.
    ...
    
    D3DXMATRIX matrix;
    
    g_pd3dDevice->Clear(0, NULL, D3DCLEAR_TARGET|D3DCLEAR_ZBUFFER, rgb(0,0,0), 1.0f, 0);
    		g_pd3dDevice->BeginScene();
    		g_pd3dDevice->SetTransform(D3DTS_WORLD,&matrix); // Transformation einstellen
    		for (i=0; i<NumMaterials; i++) // In dieser Schleife wird das Objekt gerendert (das Funktioniert)
    		{
    			g_pd3dDevice->SetMaterial(&meshmaterials[i]);
    			g_pd3dDevice->SetTexture(0, meshtextures[i]);
    			mesh->DrawSubset(i);
    		}
    		g_pd3dDevice->EndScene();
    		g_pd3dDevice->Present(NULL, NULL, NULL, NULL);
    		matrix._41+=0.001; // Der X-Positions-Wert wird bei jedem Rendervorgang um 0,001 erhöht.
    

    Das Mesh wird problemlos dargestellt, aber es bewegt sich nicht.

    Wo liegt da der Hund begraben?

    Tubos



  • ist D3DXMATRIX matrix; global ?
    wenn es nämlich innerhalb der schleife / funtion ist, dann ist matrix._41+=0.001; nutztlos



  • Ich habe die Ursache doch noch gefunden:
    Einzelne Sourcedateien wurden nicht neu kompiliert, und dadurch war ein Teil des Projekts auf dem alten Stand.
    Habe den Debug-Ordner gelöscht, jetzt funktioniert es.
    Trotzdem danke!


Anmelden zum Antworten