|
JLI Spieleprogrammierung
|
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
|
Verfasst am: 04.02.2003, 16:38 Titel: Sprites unter D3D funktionieren nicht |
|
|
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 |
|
|
mortl2 Junior JLI'ler
Anmeldedatum: 18.09.2002 Beiträge: 88 Wohnort: Straubing/Bayern Medaillen: Keine
|
Verfasst am: 05.02.2003, 14:20 Titel: |
|
|
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 .
Wer kann mir weiterhelfen?
Mortl |
|
Nach oben |
|
|
Michael JLI'ler
Anmeldedatum: 20.07.2002 Beiträge: 173 Wohnort: Münster / NRW Medaillen: Keine
|
Verfasst am: 05.02.2003, 14:54 Titel: |
|
|
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 |
|
Nach oben |
|
|
|
|
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
|