JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

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

Sprites in Dialogboxen?
Gehe zu Seite 1, 2  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Dofter
Junior JLI'ler


Alter: 34
Anmeldedatum: 13.03.2005
Beiträge: 99
Wohnort: Ebermannstadt
Medaillen: Keine

BeitragVerfasst am: 10.01.2006, 17:56    Titel: Sprites in Dialogboxen? Antworten mit Zitat

Hallo zusammen!

Also ich weiß jetzt endlich wieman mit DirectX etwas in eine Dialogbox zeichne: ich mach des so:
ich übergebe DirectX als "Fenster": GetDlgItem(hDlg, IDC_AUSGABE);
wobei IDC_AUSGABE ein Picture ist. Des Problem is nur, dass ein 2D Sprite, welches ich rein Zeichne genau so groß ist, wie die Größe des Pictures. Wie kann ich des ändern?

mfg
Dofter
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 10.01.2006, 19:40    Titel: Antworten mit Zitat

Ich kapier net ganz was du da genau machst, poste mal bisschen Code und evtl. n Screenshot. Wink

Wofür möchtest du dne so umbeicngt mit DX was in einen Dialog zeichnen? Normalerweise würde ich für sowas ja eher ein WindowsBtimpa nehmen, das passt eher.
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 10.01.2006, 19:43    Titel: Antworten mit Zitat

Scaliere am besten dein Sprite herunter um folgenden Faktor:

SpriteSize = PictureSize/ScreenSize

ansonsten überdenke deine Initialisierungsvorgänge.
_________________
"I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Dofter
Junior JLI'ler


Alter: 34
Anmeldedatum: 13.03.2005
Beiträge: 99
Wohnort: Ebermannstadt
Medaillen: Keine

BeitragVerfasst am: 10.01.2006, 20:29    Titel: Antworten mit Zitat

@ Fallen:

also ich hab des jetzt mal so probiert.
Code:
AS.SetWidth(AS.GetWidth()/188);
AS.SetHeight(AS.GetHeight()/138);
Geht aber auch net.

also Screenshot

und hier des eigentliche Bild:


und hier mal der Code:
CPP:
// Dialogfunktion
INT_PTR CALLBACK MainDlgProc(HWND hDlg,
                     unsigned int uiMsg,
                     WPARAM WParam,
                     LPARAM LParam)
{

   // Nachricht verarbeiten
   switch(uiMsg)
   {
   case WM_INITDIALOG:

      MMBEGInit();

      Direct3D.Init(GetDlgItem(hDlg, IDC_AUSGABE), TRUE, 64, 64);
      ResourceManager.Init(Direct3D.GetDevice());
      ResourceManager.AddTexture("gfx/Tile1.png");
      AS.Create(1);
      AS.AddTexture(ResourceManager.GetTexture("gfx/Tile1.png"));
      AS.SetWidth(AS.GetWidth()/188);
      AS.SetHeight(AS.GetHeight()/138);

      ShowCursor(TRUE);

      SetTimer(hDlg, 0, 25, NULL);
         
      break;

   case WM_CLOSE:

      EndDialog(hDlg, 0);
      break;

   case WM_DESTROY:
      // Timer löschen
      KillTimer(hDlg, 0);
      break;

   case WM_TIMER:

      Direct3D.BeginScene();
      AS.Draw();
      Direct3D.EndScene();
      break;

   default:
      // Standardverarbeitung der Nachricht
      return FALSE;
      break;
   }

   // Nachricht wurde verarbeitet.
   return TRUE;
}


// Windows-Hauptfunktion
int WINAPI WinMain(HINSTANCE hInstance,
               HINSTANCE hPrevInstance,
               char* pcCmdLine,
               int iShowCmd)
{

   // Den Dialog aufrufen
   if(DialogBox(hInstance, MAKEINTRESOURCE(IDD_MAIN), NULL, MainDlgProc))
   {
      // Es trat ein Fehler auf!
      MessageBox(NULL, "Fehler beim Initialisieren!",
                "Fehler", MB_OK | MB_ICONEXCLAMATION);
      return 1;
   }
   return 0;
}



@ J_K:Also ich brächt des für einen Karteneditor.

mfg
Dofter
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 10.01.2006, 20:31    Titel: Antworten mit Zitat

Ich sagte ScreenSize also sowas wie 1024x768 etc Wink
_________________
"I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Dofter
Junior JLI'ler


Alter: 34
Anmeldedatum: 13.03.2005
Beiträge: 99
Wohnort: Ebermannstadt
Medaillen: Keine

BeitragVerfasst am: 10.01.2006, 20:41    Titel: Antworten mit Zitat

oops Embarassed
also wenn ich des dann richtig verstehe:

SpriteSize = PictureSize/ScreenSize

SpriteSize: Scalierung vom Sprite , oder die Breite?
PictureSize: Die größe von bild des ich neizeichne, oder die Größe des Pictures was ich DirectX übergebe
ScreenSize: dann die größe der Dialogbox.

verbessere wenn ich falsch liege oder gib die richtig antwort an. Danke!

mfg
Dofter
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jones
Senior JLI'ler


Alter: 33
Anmeldedatum: 03.03.2005
Beiträge: 208
Wohnort: Köln
Medaillen: Keine

BeitragVerfasst am: 10.01.2006, 20:42    Titel: Antworten mit Zitat

ScreenSize soll die Größe des Desktops sein Wink
Zitat:
Ich sagte ScreenSize also sowas wie 1024x768 etc Wink
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
sp3cK-r0LL3
Senior JLI'ler


Alter: 34
Anmeldedatum: 18.06.2004
Beiträge: 275

Medaillen: Keine

BeitragVerfasst am: 10.01.2006, 20:43    Titel: Antworten mit Zitat

screensize (glaub ich) bezieht sich auf die auflösung

1600x1200
1024x786
800x600
640x480

rechtsklick auf desktop, grafikeinstellungen
_________________
sex is updatedb; locate; talk; date; cd; strip; look; touch; finger; unzip; uptime; gawk; head; apt-get install condom; mount; fsck; gasp; more; yes; more; umount; apt-get remove --purge condom; make clean; sleep
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 10.01.2006, 20:47    Titel: Antworten mit Zitat

Also ok nochmal Wink

SpriteSize = PictureSize/ScreenSize

SpriteSize: detr Skalierungsfaktor ein Wert von 1.0 bedeutet Orignalgrösse ein Wert von 0.5 50% der orignalgrösse usw.

PictureSize: Damit meine ich die Grösse von dem pictureElement in welches du hinein zeichnen möchtest.

ScreenSize: Die Desktop Auflösung.
_________________
"I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Dofter
Junior JLI'ler


Alter: 34
Anmeldedatum: 13.03.2005
Beiträge: 99
Wohnort: Ebermannstadt
Medaillen: Keine

BeitragVerfasst am: 10.01.2006, 20:54    Titel: Antworten mit Zitat

OK!! DANKE!

Zuletzt bearbeitet von Dofter am 10.01.2006, 20:59, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 10.01.2006, 20:58    Titel: Antworten mit Zitat

Zitat:
GetDlgItem(hDlg, IDC_AUSGABE);
wobei IDC_AUSGABE ein Picture ist


ehrlich keine Ahnung
_________________
"I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Dofter
Junior JLI'ler


Alter: 34
Anmeldedatum: 13.03.2005
Beiträge: 99
Wohnort: Ebermannstadt
Medaillen: Keine

BeitragVerfasst am: 10.01.2006, 20:59    Titel: Antworten mit Zitat

hätts net gebraucht. Hab deine Antwort überlesen^^ Razz
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Dofter
Junior JLI'ler


Alter: 34
Anmeldedatum: 13.03.2005
Beiträge: 99
Wohnort: Ebermannstadt
Medaillen: Keine

BeitragVerfasst am: 10.01.2006, 21:03    Titel: Antworten mit Zitat

also jetzt passts einigermaßen. ein bisschen weicht es noch vom Originalen Bild ab.
1. Die Gröe weicht ca. 5-10 Pix vom originalen Bil ab
2. Des bis is total verschwommen. Kann man da irendwas umstellen? Render states,.....?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 10.01.2006, 21:10    Titel: Antworten mit Zitat

Was bedeutet das 64,64 bei:

CPP:
Direct3D.Init(GetDlgItem(hDlg, IDC_AUSGABE), TRUE, 64, 64);


Wenn das die Auflösung sein soll probiere es mal probehalber mit der DesktopAuflösung und versuche dann dein Sprite in den Sichtbereich zu bringen.
_________________
"I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 10.01.2006, 21:13    Titel: Antworten mit Zitat

naja, wenn dus net verschwommen habne wilst, kannste Texturfilter ausschalten, dann isses halt Pixelig, also keine wirklich gute Lösung.
Verschwommen wirds halt durch die Skalierung, ich dneke aber das du wirklcih vielelicht eine Alternative zuDX suchen solltest. Denn, wenn du mit DX in das Fenster des Dialoges zeichnest, muss der doch jedesmal Device und so komplett neu erstellen, oder? Das scheint mir doch recht unpraktisch.
_________________
https://jonathank.de/games/
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 -> Fragen, Antworten und Kritik Alle Zeiten sind GMT
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
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