Avatar billede code_freak Nybegynder
09. november 2003 - 16:53 Der er 17 kommentarer og
1 løsning

DirectDraw til 2D Computerspil?

Jeg sad og søgte efter et godt og stabilt 2D gameengine, da jeg faldt over siden http://www.gametutorials.com/.

jeg begynte straks at kigge på DirectDraw Fullscreen, og fik hurtigt lave mit eget lille fullscreen 32Bit program... men det er jo ikke sjovt når man har set på billedet i 10 minutter, jeg mener der sker jo ikke nogen :P

Derfor vil jeg begynde at kigge på hvordan man kan få objecter til at bevæge sig, og styre den mad tasteturet, måske med et tetrisspil... men hvor kan jeg læse om DirectDraws class'er og functioner?

for at lige få sat det på plads, vil et DirectDraw spil være det bedste at starte på, vis man vil kigge på det jeg vil?

mange tak
Avatar billede zombietown Nybegynder
09. november 2003 - 19:21 #1
DirectDraw er godt at starte med, hvis man vil til at programmere spil. Man kan lave mange ting uden at det bliver for kompliceret.

Du skal hente DirectX SDK, kan sikker findes på Microsofts hjemmeside. Den indeholder eksempler og dokumentation.

Det burde være nok til at starte.

Held og lykke.
Avatar billede code_freak Nybegynder
09. november 2003 - 19:31 #2
jeg er nu i fuld gang med at download den SDK... jeg har tænkt mig at bruge det sammen med WINAPI da jeg kender til det... vil det være godt vis jeg vil lave fullscreenspil?
Avatar billede zombietown Nybegynder
09. november 2003 - 20:52 #3
Det er ikke noget jeg ved så meget om. Hvis du vil vide det, så kan du prøve at se på www.flipcode.com og www.gamedev.net. Det er nogle ret gode sider.
Avatar billede tycho Nybegynder
09. november 2003 - 20:55 #4
Jeg er p.t. igang med at skrive et lille 2D platform spil, hvor jeg benytter DirectDraw.
Det at få objekter til at bevæge sig, gøres sådan set bare ved at fortælle directDraw at det skal tegne det objekt på nogle koordinater, og så ændre i koordinaterne ved ,f.eks, tastetryk.
Avatar billede code_freak Nybegynder
09. november 2003 - 20:58 #5
man plusser altså bare noget ekstra til kordinatet og vis den når max kordinatet kan man sige den skal stoppe, det lyder jo simpelt, nu mangler jeg bare at lære tasternes adresser :)
Avatar billede tycho Nybegynder
09. november 2003 - 23:11 #6
Det hele kræver selvfølgelig at du sætter nogle tegnerutiner op, for at få DD til at tegne op igen og igen, men udover det, er det faktisk enormt simpelt at gøre. Og eftersom det eneste du bruger, er to talværdier, kan du manipulere lige så tosset du vil (ergo: du kan konstruere dine helt egne effekter).
Avatar billede code_freak Nybegynder
10. november 2003 - 06:52 #7
må jeg nok hellere lige læse lidt om... kender du en god bog?
Avatar billede jpk Nybegynder
10. november 2003 - 09:06 #8
Jeg vil sige det kommer lidt an på hvad du vil udvikle det til. DirectDraw er skippet til fordel for en ren 3D engine i nyere versioner af DX. Faktisk er det nyeste DD interface version 7, hvor DX jo nu kører på version 9.

Hvis du har planer om at bruge bare den mindste smule 3D i dit spil, vil jeg gå efter en af de nyere versioner. Du kan også sagtens lave "2D spil" i DX9, og så udnytte mange af de medfølgende D3DX funktioner til fx collision detection.
Avatar billede s.nielsen Nybegynder
10. november 2003 - 14:23 #9
Jeg har selv kodet en 2D engine for nogle måneder siden, jeg valgte at bruge managed DX9 (garbage collected) samt at kode i C#. Hvis du kender C# eller Java er det altså noget mindre bøvlet at kode den slags i C# (og ligeså hurtigt som C++).
Uanset hvilket sprog du vælger, er det nemmest at bruge DirectDraw. Som jpk ganske rigtigt skriver, er DirectDraw i de nyere versioner af DirectX faktisk bare et sæt wrapper klasser - i realiteten er det Direct3D der udfører arbejdet.
Den største ulempe, synes jeg, mht DirectDraw er at man ikke kan rotere objekter på skærmen. Dvs hvis du vil kode Tetris bliver du nødt til at have et bitmap for hver måde de brikker der falder ned kan være roteret. I Direct3D kan du bruge vektorer til at beskrive rotation.
Jeg endte med at skrive min engine om til Direct3D, primært på grund af ovenstående. Men hvis du er meget usikker på hvordan det hele virker synes jeg du skal starte med DirectDraw.

Søren.
Avatar billede jpk Nybegynder
10. november 2003 - 14:42 #10
"Som jpk ganske rigtigt skriver, er DirectDraw i de nyere versioner af DirectX faktisk bare et sæt wrapper klasser - i realiteten er det Direct3D der udfører arbejdet."

Det var nu hverken det jeg sagde eller det jeg mente...
Avatar billede s.nielsen Nybegynder
10. november 2003 - 14:47 #11
Beklager. Men sådan forholder det sig i DX9.
Avatar billede code_freak Nybegynder
10. november 2003 - 18:29 #12
DirectDraw bliver altså ikke udviklet mere?
Avatar billede jpk Nybegynder
11. november 2003 - 08:40 #13
Nej, og samtidig er der kommet så mange hjælpefunktioner (D3DX), at jeg til ville vælge DX9. Det giver også mulighed for at benytte grafikkortets 3D-acceleration til en del funktioner, selv om du laver noget "der ligner" 2D.
Det er dog på det nærmeste et krav at du kan en lille smule vektorgeometri og  matrixberegninger, hvis du vil lave spil...
Avatar billede code_freak Nybegynder
11. november 2003 - 08:44 #14
nu ligger det sådan... jeg kan ikke en dyt 3D... både Codning, og bygning af objecter :\
Avatar billede jpk Nybegynder
11. november 2003 - 09:10 #15
Tja, så vil jeg anbefale dig at starte med en bog...
Avatar billede code_freak Nybegynder
11. november 2003 - 09:41 #16
jeg har bøgerne... "3DS MAX for Windows", "3D Game Programming with" DirectX8.0", "Beginning Direct3D Game Programming".

Men det er mere at jeg har ikke evnen til at lave flotte 3D objecter... så vis jeg kunne programmere 3D, kunne jeg stadig ikke lave 3D objecter til det :\
Avatar billede jpk Nybegynder
11. november 2003 - 09:48 #17
Hvis du vil lave noget mere avanceret, kan du fx slå dig sammen med andre udviklere/grafikere.
Men du kan også finde en masse resourcer rundt omkring på nettet, kig fx på:
http://www.gamedev.net/reference/list.asp?categoryid=81
Avatar billede code_freak Nybegynder
11. november 2003 - 09:53 #18
har prøvet at slå mig sammen en gang... man af dem jeg har prøvet med at nogen der tror et spil kan bygges på en dag... og iretere mig med mails hver dag, om hvornår spillet er færdig... og der er noget der virkelig kan gøre mig sur, så nøjes med mig selv... indtil jeg kan fremvise mit eget engine, jeg kan begynde at bruge til flere spil :)
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