JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=c531cb524c2cc71a0c455cca91d85bf3Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Surface transparent

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


Alter: 30
Anmeldedatum: 29.10.2008
Beiträge: 73
Wohnort: Inneringen
Medaillen: Keine

BeitragVerfasst am: 07.01.2010, 19:36    Titel: Surface transparent Antworten mit Zitat

Hab ein Problem und zwar hab ich in meinem game ein fadenkreuz. In dem Bild sind teile transparent, aber das, das transparent sein sollte wird schwarz dargestellt, hier mein code:

CPP:
void CDirect3D::DrawSurface4(void)
{
        LPDIRECT3DSURFACE9 lpSurface;

        D3DXIMAGE_INFO ImageInfo;

        D3DXGetImageInfoFromFile(CURSOR_WEAPON, &ImageInfo);

   m_lpD3DDevice->CreateOffscreenPlainSurface(
   ImageInfo.Width,
        ImageInfo.Height,
        D3DFMT_A8R8G8B8,
        D3DPOOL_DEFAULT,
        &lpSurface,
        0);

        D3DXLoadSurfaceFromFile(lpSurface,     

                                  NULL,             
                                  NULL,
                                  CURSOR_WEAPON,
                                  NULL,                                 
                                            D3DX_FILTER_NONE,
                                  0,
                                  NULL);

              RECT r = { (SCR_WIDTH - ImageInfo.Width) / 2, (SCR_HEIGHT - ImageInfo.Height) / 2, ((SCR_WIDTH - ImageInfo.Width) / 2) + ImageInfo.Width, ((SCR_HEIGHT - ImageInfo.Height) / 2) + ImageInfo.Height };

             // Offscreen-Surface kopieren
             m_lpD3DDevice->StretchRect(lpSurface,
                                        NULL,
                                        m_lpBackBuffer,
                                        &r,
                               D3DTEXF_NONE);

   lpSurface->Release();

}


GRuß Robin
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
=]Mid[=]Night[=
Super JLI'ler



Anmeldedatum: 20.11.2002
Beiträge: 380
Wohnort: Aachen
Medaillen: Keine

BeitragVerfasst am: 08.01.2010, 01:03    Titel: Antworten mit Zitat

StretchRect() unterstützt leider keine Alpha-Transparenz.
Wenn du sowas benutzen willst solltest du dir vielleicht mal ID3DXSprite angucken.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Robin
Junior JLI'ler


Alter: 30
Anmeldedatum: 29.10.2008
Beiträge: 73
Wohnort: Inneringen
Medaillen: Keine

BeitragVerfasst am: 09.01.2010, 21:51    Titel: Antworten mit Zitat

ok.. hab kein plan wie das genau geht .... hab damit noch nich gearbeitet

müsste ich da beim code nur was kleines umändern oder muss ich den ganzen code umstellen ??

GRuß Robin
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
=]Mid[=]Night[=
Super JLI'ler



Anmeldedatum: 20.11.2002
Beiträge: 380
Wohnort: Aachen
Medaillen: Keine

BeitragVerfasst am: 10.01.2010, 20:37    Titel: Antworten mit Zitat

Ja, das ist schon eine größere Umstellung. Hast du denn nicht das JLI-Buch?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Robin
Junior JLI'ler


Alter: 30
Anmeldedatum: 29.10.2008
Beiträge: 73
Wohnort: Inneringen
Medaillen: Keine

BeitragVerfasst am: 11.01.2010, 18:22    Titel: Antworten mit Zitat

doch des buch hab ich schon, da komm ich aber erst in ner woche ran... des muss ich dann so machen wie bei dem beispiel jli fighter oder ???

GRuß Robin
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Robin
Junior JLI'ler


Alter: 30
Anmeldedatum: 29.10.2008
Beiträge: 73
Wohnort: Inneringen
Medaillen: Keine

BeitragVerfasst am: 17.01.2010, 18:23    Titel: Antworten mit Zitat

ok... hab des problem gelößt... nur noch kurz was anderes.. und zwar lass ich grad ne fläche schwarz zeichnen mit DrawSurface wenn ich des menü öffne... jetzt dachte ich mir des kann ich ja mit DrawSprite halb durchsichtig machen... nur funktioniert da des Colorfill nich... was kann ich nehmen ??

GRuß Robin
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Robin
Junior JLI'ler


Alter: 30
Anmeldedatum: 29.10.2008
Beiträge: 73
Wohnort: Inneringen
Medaillen: Keine

BeitragVerfasst am: 19.01.2010, 16:48    Titel: Antworten mit Zitat

schon ok... hab ein 1x1 pixel großes bild genommen das ganz schwarz ist, und wenn ich des ausgeb vergrößer ich des halt und machs halb durchsichtig

GRuß Robin
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Robin
Junior JLI'ler


Alter: 30
Anmeldedatum: 29.10.2008
Beiträge: 73
Wohnort: Inneringen
Medaillen: Keine

BeitragVerfasst am: 31.01.2010, 17:54    Titel: Antworten mit Zitat

Hi, schon wieder hab ich hier ein kleines problem:

Da bei Sprites kein strech rect geht, hab ich so scale ding drin.. also dass das bild scaliert wird.

So, jetzt hab ich ein bild das bei jeden pc ganz nach Auflösung, größer bzw. kleiner dargestellt wird.
jetzt hab ich das geschrieben:

CPP:
    int sy = (SCR_HEIGHT / 8) / 250;
    int sx = 1.6 * sy;

    D3DXVECTOR2 vScaling(sx, sy);


das geht nicht und statt den sx und sy müsste sx = 0.48f und sy = 0.3f rein...(des ist jetzt auf mein laptop bezogen 1024x600)..

Ich schätzte mal das das "int" nicht nach dem Komma rechnet und dann nur rundet oder so..
und in dem fall wird dann 0.48f und 0.3f auf 0 gerundet und es wird kein Bild angezeigt...

hoff das das schnell zu lösen ist

GRuß Robin


Zuletzt bearbeitet von Robin am 01.02.2010, 10:38, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
=]Mid[=]Night[=
Super JLI'ler



Anmeldedatum: 20.11.2002
Beiträge: 380
Wohnort: Aachen
Medaillen: Keine

BeitragVerfasst am: 31.01.2010, 19:01    Titel: Antworten mit Zitat

Wenn du dir ein bisschen mehr Mühe beim Schreiben geben würdest, wären deine Fragen auch ein bisschen einfacher zu verstehen Wink
Aber mit deiner Vermutung hast du schon ganz recht, du solltest einfach float statt int benutzen .. und da deine SCR_HEIGHT wohl auch ein Integer ist, muss der wohl auch in ein float konvertiert werden.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Robin
Junior JLI'ler


Alter: 30
Anmeldedatum: 29.10.2008
Beiträge: 73
Wohnort: Inneringen
Medaillen: Keine

BeitragVerfasst am: 01.02.2010, 10:22    Titel: Antworten mit Zitat

hey, danke !

hab zwar die zwei werte sx und sy schon in float umgesetzt gehabt, aber es ging trotzdem nich... ich hatte halt vergessen die Bildschirm größe (wie du schon sagtest) vergessen auch in flloat umzuwandeln

GRuß Robin
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
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