ID3DXSprite::SetTransform() transformiert ganze Szene



  • Hallo zusammen,

    ich habe testweise mal sowas gemacht:

    m_pSprite->Begin(0);
    
    	D3DXMATRIX m;
    	D3DXMatrixRotationZ(&m,3.14152f/10.0f);
    	m_pSprite->SetTransform(&m);
    
    	m_pSprite->Draw(
    		m_vecTextures[m_iCurTex],
    		0,
    		&D3DXVECTOR3(10.0f,10.0f,0.0f),
    		&D3DXVECTOR3(10.0f,10.0f,0.0f),
    		0xFFFFFFFF);
    
    	m_pSprite->End();
    

    der Sinn davon ist, ein Sprite in einer 2D-Anwendung zu rotieren. Das Rotieren Funktioniert auch, jedoch wird die ganze Szene inklusive Koordinatensystem rotiert, die Maussteuerung etwa ist dann auch "gekippt". Ich habe bereits m_pSprite->Begin(D3DXSPRITE_OBJECTSPACE); probiert, leider kriege ich dann gar nichts mehr angezeigt 😞 Hat mir jemand einen Tipp, was ich falsch mache?

    Grz
    -me



  • also ich kenn mich nich genau mit id3dxsprite aus, aber ich denk einfach mal, dass das interface d3ddevice9::settransform aufruft um die transformation zu setzen. Dann ists klar, dass diese transformation dann noch bleibt wenn du fertig mit malen bist. Probier mal vorher d3ddevice::gettransform und nach sprite::draw d3ddevice:.settransform



  • Dickes THX 😛
    Werd's mal ausprobieren, ich habe so das Gefühl, das hilft ^^


Anmelden zum Antworten