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
|
Verfasst am: 10.01.2006, 17:56 Titel: Sprites in Dialogboxen? |
|
|
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 |
|
 |
Jonathan_Klein Living Legend

Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 10.01.2006, 19:40 Titel: |
|
|
Ich kapier net ganz was du da genau machst, poste mal bisschen Code und evtl. n Screenshot.
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 |
|
 |
Fallen JLI MVP


Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 10.01.2006, 19:43 Titel: |
|
|
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 |
|
 |
Dofter Junior JLI'ler

Alter: 34 Anmeldedatum: 13.03.2005 Beiträge: 99 Wohnort: Ebermannstadt Medaillen: Keine
|
Verfasst am: 10.01.2006, 20:29 Titel: |
|
|
@ 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 |
|
 |
Fallen JLI MVP


Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 10.01.2006, 20:31 Titel: |
|
|
Ich sagte ScreenSize also sowas wie 1024x768 etc  _________________ "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 |
|
 |
Dofter Junior JLI'ler

Alter: 34 Anmeldedatum: 13.03.2005 Beiträge: 99 Wohnort: Ebermannstadt Medaillen: Keine
|
Verfasst am: 10.01.2006, 20:41 Titel: |
|
|
oops
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 |
|
 |
Jones Senior JLI'ler

Alter: 33 Anmeldedatum: 03.03.2005 Beiträge: 208 Wohnort: Köln Medaillen: Keine
|
Verfasst am: 10.01.2006, 20:42 Titel: |
|
|
ScreenSize soll die Größe des Desktops sein
Zitat: | Ich sagte ScreenSize also sowas wie 1024x768 etc Wink |
|
|
Nach oben |
|
 |
sp3cK-r0LL3 Senior JLI'ler

Alter: 34 Anmeldedatum: 18.06.2004 Beiträge: 275
Medaillen: Keine
|
Verfasst am: 10.01.2006, 20:43 Titel: |
|
|
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 |
|
 |
Fallen JLI MVP


Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 10.01.2006, 20:47 Titel: |
|
|
Also ok nochmal
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 |
|
 |
Dofter Junior JLI'ler

Alter: 34 Anmeldedatum: 13.03.2005 Beiträge: 99 Wohnort: Ebermannstadt Medaillen: Keine
|
Verfasst am: 10.01.2006, 20:54 Titel: |
|
|
OK!! DANKE!
Zuletzt bearbeitet von Dofter am 10.01.2006, 20:59, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
Fallen JLI MVP


Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 10.01.2006, 20:58 Titel: |
|
|
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 |
|
 |
Dofter Junior JLI'ler

Alter: 34 Anmeldedatum: 13.03.2005 Beiträge: 99 Wohnort: Ebermannstadt Medaillen: Keine
|
Verfasst am: 10.01.2006, 20:59 Titel: |
|
|
hätts net gebraucht. Hab deine Antwort überlesen^^  |
|
Nach oben |
|
 |
Dofter Junior JLI'ler

Alter: 34 Anmeldedatum: 13.03.2005 Beiträge: 99 Wohnort: Ebermannstadt Medaillen: Keine
|
Verfasst am: 10.01.2006, 21:03 Titel: |
|
|
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 |
|
 |
Fallen JLI MVP


Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 10.01.2006, 21:10 Titel: |
|
|
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 |
|
 |
Jonathan_Klein Living Legend

Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 10.01.2006, 21:13 Titel: |
|
|
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 |
|
 |
|