Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Mr. Data Mini JLI'ler
Anmeldedatum: 16.09.2002 Beiträge: 39
Medaillen: Keine
|
Verfasst am: 13.06.2003, 11:08 Titel: Surface |
|
|
Wiee kann ich neben der primären Oberfläche eine zweite oder dritte erzeugen
Das Objekt (lpDD7) und die primäre krieg ich problemlos hin
Bei der zweiten hab ich das so probiert:
DIRECTDRAWSURFACE7 lpDDSurface = NULL;
DDSURFACEDESC2 ddsd2
ZeroMemory(&ddsd2,sizeof (ddsd2)
ddsd2.dwSize = sizeof(ddsd2);
ddsd2.dwFlags = DDSD_CAPS;
ddsd2.ddsCaps.dwCaps = DDSCAPS_VIDEOMONORY;
lpDD7 -> CreateSurface(&ddsd2,&lpDDSurface,NULL);
Das funzt aber nicht. Was mach ich falsch?
thx für die Hilfe _________________ nothing is inmpossible |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
The Lord of Programming Living Legend
![](http://extern.visualgamesentertainment.net/ava_vge.png)
Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 13.06.2003, 11:21 Titel: |
|
|
Ich glaube man kann nur eine primäre Oberfläche erzeugen. Wofür brauchst du denn das? _________________ www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console
Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet... |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
Mr. Data Mini JLI'ler
Anmeldedatum: 16.09.2002 Beiträge: 39
Medaillen: Keine
|
Verfasst am: 13.06.2003, 13:34 Titel: |
|
|
Wollt es eigentlich erst mal ausprobieren
Bei einem 2D-Spiel z.B wo man von links nach rechts läuft muss ja der
Hintergrund und alle Objekte irgendwie gespeichert werden
Ich dachte das würde mit einer weiteren Oberfläche gehen
Außerdem klingt es irgendwie logisch das es neben einer primären Oberfläche boch weitere geben kann _________________ nothing is inmpossible |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
magynhard Super JLI'ler
![](http://home.arcor.de/_matt/tmp/2007-09-27_003_bl_192x.jpg)
Anmeldedatum: 26.04.2003 Beiträge: 461 Wohnort: Wild durch die Welt ;-) Medaillen: Keine
|
Verfasst am: 13.06.2003, 13:55 Titel: |
|
|
Ich glaube TLoP meinte, dass du mehrere primäre machen willst.
Ich kenne mich damit aber noch nicht aus, weshalb ich darauf noch nicht antworte. ![Rolling Eyes](images/smiles/icon_rolleyes.gif) _________________ Niemand ist hoffnungsloser versklavt als der, der fälschlich glaubt frei zu sein. [J. W. Goethe]
![](http://www.magynhard.de/img/banner/MAGYNHARD_mini_88x31.png) |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
nEp Junior JLI'ler
Anmeldedatum: 03.06.2003 Beiträge: 75
Medaillen: Keine
|
Verfasst am: 13.06.2003, 17:16 Titel: Re: Surface |
|
|
Mr. Data hat Folgendes geschrieben: | Wiee kann ich neben der primären Oberfläche eine zweite oder dritte erzeugen
Das Objekt (lpDD7) und die primäre krieg ich problemlos hin
Bei der zweiten hab ich das so probiert:
LPDIRECTDRAWSURFACE7 lpDDSurface = NULL;
DDSURFACEDESC2 ddsd2
ZeroMemory(&ddsd2,sizeof (ddsd2)
ddsd2.dwSize = sizeof(ddsd2);
ddsd2.dwFlags = DDSD_CAPS;
ddsd2.ddsCaps.dwCaps = DDSCAPS_VIDEOMONORY;
lpDD7 -> CreateSurface(&ddsd2,&lpDDSurface,NULL);
Das funzt aber nicht. Was mach ich falsch?
thx für die Hilfe |
Code: |
LPDIRECTDRAWSURFACE7 background = NULL;
DDSURFACEDESC2 ddsd2;
ZeroMemory(&ddsd2,sizeof (ddsd2);
ddsd2.dwSize = sizeof(ddsd2);
ddsd2.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT;
ddsd2.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN;
ddsd2.dwWidth = 1024;
ddsd2.dwHeight = 480;
lpDD7->CreateSurface(&ddsd2,&background,NULL);
|
So du musst als flag DDSCAPS_OFFSCREENPLAIN angeben, damit DDraw weiß, dass es sich hier auch um eine Offscreen-Oberfläche handelt(also eien nicht-sichtbare). Zusätzlich MUSST du auch die Höhe und Breite angeben, da DDraw hier ja im Gegensatz zu einer primären Oberfläche nicht weiß, wie groß die Oberfläche sein soll. Du kannst hier deine Sprites,Hintergrundbilder etc reinladen, diese dann in den Backbuffer der primären Oberfläche blitten und daraus dann deine Szene erstellen. Wenn du z.B Scrolling impelementieren willst, machst du die Offscreen-Surface einfach relativ groß und blittest dann immer den Teilbereich der gerade angezeigt werden soll auf die Primäre Oberfläche.
Zuletzt bearbeitet von nEp am 14.06.2003, 12:09, insgesamt einmal bearbeitet |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
nEp Junior JLI'ler
Anmeldedatum: 03.06.2003 Beiträge: 75
Medaillen: Keine
|
Verfasst am: 13.06.2003, 17:18 Titel: |
|
|
Achso muss natürlich LPDIRECTDRAWSURFACE7 heißen und nicht DIRECTDRAWSURFACE7. Waren auch so noch paar syntaktische Fehler drin in deinem Codebeispiel. |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
Mr. Data Mini JLI'ler
Anmeldedatum: 16.09.2002 Beiträge: 39
Medaillen: Keine
|
Verfasst am: 14.06.2003, 10:02 Titel: |
|
|
Hoppla,na ja kann passieren
Danke für die prompte Hilfe _________________ nothing is inmpossible |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
|