JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.phpMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Sprites unter D3D funktionieren nicht

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
mortl2
Junior JLI'ler



Anmeldedatum: 18.09.2002
Beiträge: 88
Wohnort: Straubing/Bayern
Medaillen: Keine

BeitragVerfasst am: 04.02.2003, 17:38    Titel: Sprites unter D3D funktionieren nicht Antworten mit Zitat

Hi,

Ich arbeite zur Zeit mit Sprites unter D3D, doch wenn ich das Programm starte, funktioniert's nicht richtig.

Dazu habe ich mir eine Klasse Sprite geschrieben
Code:

class Sprite
{
    private:
        ID3DXSprite *Sprite;
        LPDIRECT3DTEXTURE8 Texture;
        int breite;
        int hoehe;

    public:
       Sprite();
       ~Sprite();
       void Init(char *filename);
       void draw(HWND hWnd);
}

Sprite::Sprite()
{
    Sprite = 0;
    Texture = 0;
}

Sprite::~Sprite()
{
    if(Sprite)
        Sprite->Release();
    if(Texture)
        Texture->Release();
}

void Sprite::Init(char* filename)
{
    D3DSURFACE_DESC dsc;

    D3DXCreateSprite(DirectX.device, &Sprite);

    D3DXCreateTextureFromFileEx(DirectX.device, filename, 0, 0, 0, 0,
D3DFMT_UNKNOW, D3DPOOL_MANAGED,
D3DX_DEFAULT, D3DX_DEFAULT,
0xFFC000C0, NULL,
NULL, &Texture);

    Texture->GetLevelDesc(0, &dsc);
    breite = dsc.Width;
    hoehe = dsc.Height;
}

void Sprite::draw(HWND hWnd)
{
    D3DXVECTOR2 scale;
    RECT r;

    GetClientRect(hWnd, &r);

    scale.x = r.right/(float)breite;
    scale.y = r.bottom/(float)hoehe;

    Sprite->Begin();
    Sprite->Draw(Texture, NULL, &scale, NULL, 0.0f, NULL, 0xFFFFFFFF);
    Sprite->End();
}



Wo liegt hier der Fehler?

Mortl

[/code]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
mortl2
Junior JLI'ler



Anmeldedatum: 18.09.2002
Beiträge: 88
Wohnort: Straubing/Bayern
Medaillen: Keine

BeitragVerfasst am: 05.02.2003, 15:20    Titel: Antworten mit Zitat

Ok, die Sache hat sich geklärt.

Wenn ich den Sprite nach der "ShowWindow" Funktion initialisiere, dann gehts, wenn ich aber die Größe des Fensters ändere dann wieder nicht Crying or Very sad.
Wer kann mir weiterhelfen?

Mortl
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Michael
JLI'ler



Anmeldedatum: 20.07.2002
Beiträge: 173
Wohnort: Münster / NRW
Medaillen: Keine

BeitragVerfasst am: 05.02.2003, 15:54    Titel: Antworten mit Zitat

die struktur id3dxsprite wird so weit ich weiß mit der größe des backbuffers initialisiert. dieser ergibt sich bei einer fensteranwendung aus der fenstergröße. und wenn du die änderst, dann passt die spritegröße ned mehr
_________________
Es geht auch ohne Wink
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum