JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

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

Surface

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Mr. Data
Mini JLI'ler



Anmeldedatum: 16.09.2002
Beiträge: 39

Medaillen: Keine

BeitragVerfasst am: 13.06.2003, 11:08    Titel: Surface Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 13.06.2003, 11:21    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Mr. Data
Mini JLI'ler



Anmeldedatum: 16.09.2002
Beiträge: 39

Medaillen: Keine

BeitragVerfasst am: 13.06.2003, 13:34    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
magynhard
Super JLI'ler



Anmeldedatum: 26.04.2003
Beiträge: 461
Wohnort: Wild durch die Welt ;-)
Medaillen: Keine

BeitragVerfasst am: 13.06.2003, 13:55    Titel: Antworten mit Zitat

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
_________________
Niemand ist hoffnungsloser versklavt als der, der fälschlich glaubt frei zu sein. [J. W. Goethe]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
nEp
Junior JLI'ler



Anmeldedatum: 03.06.2003
Beiträge: 75

Medaillen: Keine

BeitragVerfasst am: 13.06.2003, 17:16    Titel: Re: Surface Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
nEp
Junior JLI'ler



Anmeldedatum: 03.06.2003
Beiträge: 75

Medaillen: Keine

BeitragVerfasst am: 13.06.2003, 17:18    Titel: Antworten mit Zitat

Achso muss natürlich LPDIRECTDRAWSURFACE7 heißen und nicht DIRECTDRAWSURFACE7. Waren auch so noch paar syntaktische Fehler drin in deinem Codebeispiel.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mr. Data
Mini JLI'ler



Anmeldedatum: 16.09.2002
Beiträge: 39

Medaillen: Keine

BeitragVerfasst am: 14.06.2003, 10:02    Titel: Antworten mit Zitat

Hoppla,na ja kann passieren

Danke für die prompte Hilfe
_________________
nothing is inmpossible
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL Alle Zeiten sind GMT
Seite 1 von 1

 
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