Avatar billede nubi19 Nybegynder
21. september 2004 - 10:15 Der er 11 kommentarer og
1 løsning

Oprettelse af knapper i D3D 9 ?

Hejsa, jeg står i den situation at jeg skal have lavet et menusystem i Direct 3D 9, men hvordan laver man nemmest en knap i Direct 3D ?
Jeg har overvejet følgende muligheder, men ingen af dem virker særligt gode:
1. Tegne squares og aflæse musekoordinater, men keyboardet kan ikke aktivere dem, og det er lidt noget skidt.

2. Lave et almindeligt winmain vindue med knapperne og vise i D3D, men har ikke kunnet finde info om hvordan dette gøres.

3. Aflæse triangle positioner, der findes et sted en sample til dette, men det er igen lidt en skod løsning, da det ikke er rigtige knapper, og keyboardet ikke vil virke så.

Nogen der lige kender en god måde at gøre dette på ?
Avatar billede jpk Nybegynder
21. september 2004 - 11:31 #1
Hvis du ikke vil bruge alm. Windows kontroller (hvilket jo ikke ser pænt ud), er der ikke rigtig nogen vej udenom - du må lave dit egen menusystem.

Du kan lave knapper osv. som du laver alm. 2D/3D objekter og der er ikke noget der hindrer dig i at bruge tastaturet som input. Din bagvedlæggende struktur skal selvfølgelig bare kunne håndtere en angivelse af, hvilket punkt er valgt. Så laver du switch på tastetryk, så fx pil/ned op skifter menupunkt.
Avatar billede nlf Nybegynder
21. september 2004 - 20:26 #2
1. Den nemmeste og bedste
Så skal du bare aflæse både tastetryk og markør koordinater ved hjælp af WM_KEYDOWN og WM_MOUSEMOVE. Lav en switch på det og vupti, så har du et menusystem.
Det er slet ikke så svært...
Avatar billede nubi19 Nybegynder
22. september 2004 - 09:29 #3
Hmm æv håbede D3D havde noget fikst til det, nå men så er der jo ingen vej udenom, takker for svarene. nlf hvis du lige giver et svar så får i begge point.
Avatar billede jpk Nybegynder
22. september 2004 - 09:41 #4
Hvis du har lavet din spilkode rimelig generelt, kan du vel bruge den?
Typisk er der ikke megen forskel, det handler om at rendere nogle objekter og håndtere museklik/tastetryk.
Avatar billede nubi19 Nybegynder
22. september 2004 - 13:17 #5
Ja det er ikke for at det er besværligt at lave, det virker bare en anelse hmm uprofessionelt at aflæse koordinaterne på mousedown events, men det er nok bare mig der synes det :)
Avatar billede jpk Nybegynder
22. september 2004 - 13:50 #6
Jamen det er jo sådan man typisk gør i et spil, hvis man bruger musen til at klikke på objekter...
Avatar billede nubi19 Nybegynder
22. september 2004 - 14:10 #7
Jah det er jo nok rigtigt nok, det virker bare så fjollet ikke at have en funktion direkte hægtet på hver knap, men pyt nu med det.
Avatar billede nubi19 Nybegynder
23. september 2004 - 08:17 #8
Hmmm ups opdagede lige jeg også skal bruge drop-down bokse i menusystemet, det udelukker jo lidt denne metode :/
Er der nogen der har et link til noget vedrørende det at vise et winmain vindue i Direct 3D ?
Avatar billede jpk Nybegynder
23. september 2004 - 10:16 #9
Der er ikke noget der hedder et winmain vindue, men jeg forstår hvad du mener...
Det er ikke anderledes at vise et vindue fordi du bruger DX.

Dog vil jeg ikke sige at det udelukker metoden med selv at tegne menuen, men der skal selvfølgeligvis kodes lidt mere...
Avatar billede nubi19 Nybegynder
23. september 2004 - 10:43 #10
Uhm ja det hedder det ikke, men vidste ikke lige om det havde et navn, godt du ved hvad jeg mener :P
Men problematikken er den at når jeg skifter til fullscreen i D3D kan jeg jo ikke se det bagvedliggende vindue, men tjah jeg vil faktisk også helst selv lave menusystemet, idet de grå windows knapper er meget grimme, men en drop-down boks, tjah man kunne jo selvfølgelig lave noget fusk - det virker bare så amatøragtigt imho, men pyt nu med det.

Det lader ikke til nlf vil svare så du får lige point nu
Avatar billede jpk Nybegynder
23. september 2004 - 10:46 #11
Der er masser af eksempler på hvordan man viser et vindue oven på 3D renderingen, stort set alle samples i SDK'en gør det.
Avatar billede jpk Nybegynder
29. september 2004 - 15:46 #12
I DirectX summer update 2004 kan du finde et eksempel der hedder CustomUI, det har vist hvad du mangler.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester