|
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
CorDharel Junior JLI'ler
Anmeldedatum: 15.10.2002 Beiträge: 73 Wohnort: Winterthur, Zürich, CH Medaillen: Keine
|
Verfasst am: 30.06.2005, 19:22 Titel: |
|
|
Oh hmm mein Fehler
Aber irgendwie bring ich die Parameter nicht so hin, dass es funzt. Es kommt immer der Error:
Code: | if(FAILED(lpDDSPrimary->Blt(NULL,NULL,NULL,
DDBLT_COLORFILL |DDBLT_WAIT,NULL)))
{
Error("Blt ist fehlgeschlagen");
return;
} |
_________________ Greetz CorDharel |
|
Nach oben |
|
|
Patrick Dark JLI Master
Anmeldedatum: 25.10.2004 Beiträge: 1895 Wohnort: Düren Medaillen: Keine
|
Verfasst am: 30.06.2005, 19:26 Titel: |
|
|
Das ist klar, weil du für das leeren einer Surface die Löschspezifikationen nicht übergeben hast:
CPP: | // ///////////////////////////////////////////////////////////////////////////
// PUBLIC
//
// "Leert" den "Workbuffer".
// ///////////////////////////////////////////////////////////////////////////
void directdraw::clear (void)
{
DEBUG_STACK;
// Sicherheitscheck
if (locked_)
EXCEPTION ("Could not clear the work-surface. Work-surface is locked.");
// Hilfsstruktur
::DDBLTFX directdraw_blitfx;
// Struktur initialisieren
::ZeroMemory (&directdraw_blitfx, sizeof(directdraw_blitfx));
// Parameter setzen
directdraw_blitfx.dwSize = sizeof(directdraw_blitfx);
directdraw_blitfx.dwFillColor = 0;
// Backbuffer Leeren.
if (directdraw7_work_->Blt (NULL, NULL, NULL, DDBLT_COLORFILL | DDBLT_WAIT, &directdraw_blitfx) != DD_OK)
EXCEPTION ("IDirectDrawSurface7::Blt(); failed!\n\n"
"Could not clear the work-surface.");
} |
_________________ 'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ] |
|
Nach oben |
|
|
CorDharel Junior JLI'ler
Anmeldedatum: 15.10.2002 Beiträge: 73 Wohnort: Winterthur, Zürich, CH Medaillen: Keine
|
Verfasst am: 01.07.2005, 13:23 Titel: |
|
|
Hmm? Jetzt hab ich doch das bild auf die 2te Surface kopiert und will sie auf der ersten sehen. Wo kommt da das löschen drin vor?
[edit] Jetzt versteh ich gar nichts mehr. Ich kopiere doch den Inhalt von der zweiten Oberfläche auf die erste mit dem Befehl
Code: | lpDDSPrimary->BltFast(10,10,lpDDSurface,NULL,DDBLT_WAIT); |
nicht? Dann sollte doch Britney im Programm kommen _________________ Greetz CorDharel |
|
Nach oben |
|
|
City Hunter Super JLI'ler
Alter: 39 Anmeldedatum: 18.04.2004 Beiträge: 330 Wohnort: Berlin Medaillen: Keine
|
Verfasst am: 01.07.2005, 22:05 Titel: |
|
|
DirectXer hat Folgendes geschrieben: | doch kann sein. Im Buch stand net, dass wenn du den Code selber abtippst, folgende Zeilen einfügen musst: CPP: | #pragma comment(lib, "ddraw.lib") |
Gruß DirectXer
EDIT: Menno, Patty war schneller |
Im Buch steht auch drin das du die Lib in den Projekt/Eigenschaften verlinken sollst |
|
Nach oben |
|
|
DirectXer Dark JLI'ler
Anmeldedatum: 05.02.2005 Beiträge: 1201 Wohnort: Köln Medaillen: Keine
|
Verfasst am: 02.07.2005, 08:48 Titel: |
|
|
City Hunter hat Folgendes geschrieben: | DirectXer hat Folgendes geschrieben: | doch kann sein. Im Buch stand net, dass wenn du den Code selber abtippst, folgende Zeilen einfügen musst: CPP: | #pragma comment(lib, "ddraw.lib") |
Gruß DirectXer
EDIT: Menno, Patty war schneller |
Im Buch steht auch drin das du die Lib in den Projekt/Eigenschaften verlinken sollst |
Dann les dir mal meinen nächsten Post durch |
|
Nach oben |
|
|
CorDharel Junior JLI'ler
Anmeldedatum: 15.10.2002 Beiträge: 73 Wohnort: Winterthur, Zürich, CH Medaillen: Keine
|
Verfasst am: 02.07.2005, 10:19 Titel: |
|
|
Egal wie ichs auch anstelle, ich krieg es nicht hin
So siehts aus:
Main():
Code: | //sekundäre oberfläche laden
lpDDSurface = CreateSurfaceFromBitmap("G:\britney.bmp",100,100); |
Render():
Code: | //bild anzeigen
lpDDSPrimary->BltFast(10,10,lpDDSurface,NULL,DDBLT_WAIT); |
CreateSurfaceFromImage():
Code: | LPDIRECTDRAWSURFACE7 CreateSurfaceFromBitmap(LPSTR File, int dWidth, int dHeight)
{
//device context für das bild und die oberfläche
HDC hBmDC, hSurfDC;
//handle der zu ladenden bitmap
HBITMAP hBM;
//oberflächenbeschreibung
DDSURFACEDESC2 SurfDesc;
//zeiger auf die oberfläche
LPDIRECTDRAWSURFACE7 lpDDSurface;
//bild laden
hBM = (HBITMAP)LoadImage(0,File, IMAGE_BITMAP,dWidth,dHeight,LR_LOADFROMFILE);
//ist ein fehler aufgetreten?
if(NULL == hBM)
{
Error("Fehler 1");
return NULL;
}
//oberflächenbeschreibung initialisierne
ZeroMemory(&SurfDesc,sizeof(SurfDesc));
SurfDesc.dwSize = sizeof(SurfDesc);
//Caps höhe und breite berücksichtigen
SurfDesc.dwFlags = DDSD_CAPS | DDSD_HEIGHT | DDSD_WIDTH;
SurfDesc.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN;
SurfDesc.dwWidth = dWidth;
SurfDesc.dwHeight = dHeight;
//oberfläche anlegen
if(FAILED(lpDD7->CreateSurface(&SurfDesc,&lpDDSurface,NULL)))
{
Error("Fehler 2");
return NULL;
}
//device context von fläche holen
lpDDSurface->GetDC(&hSurfDC);
//kompatiblen DC für bild anlegen
hBmDC = CreateCompatibleDC(hSurfDC);
//bild für DC holen
SelectObject(hBmDC,hBM);
//bild in oberfläche kopieren
BitBlt(hSurfDC,0,0,dWidth,dHeight,hBmDC,0,0,SRCCOPY);
//Device Context freigeben
lpDDSurface->ReleaseDC(hSurfDC);
//DC und bild löschen
DeleteDC(hBmDC);
DeleteObject(hBM);
//zeiger zurückgeben
return lpDDSurface;
}
|
Es sollte doch endlich Britney anzeigen
Ich wäre sehr dankbar für Hilfe _________________ Greetz CorDharel |
|
Nach oben |
|
|
Patrick Dark JLI Master
Anmeldedatum: 25.10.2004 Beiträge: 1895 Wohnort: Düren Medaillen: Keine
|
Verfasst am: 02.07.2005, 10:23 Titel: |
|
|
Wenn Du ICQ hast schreib mich mal an und send mir den Code, ich guck mal kurz drüber
Würd Dir ja sonst meinen DirectDraw Code geben aber ich glaub der währe Dir (noch) etwas zu "hoch" _________________ 'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ] |
|
Nach oben |
|
|
CorDharel Junior JLI'ler
Anmeldedatum: 15.10.2002 Beiträge: 73 Wohnort: Winterthur, Zürich, CH Medaillen: Keine
|
Verfasst am: 06.07.2005, 23:02 Titel: |
|
|
Wenn du mir sagst ich soll dich anschreiben, sag doch deine ICQ Nummer
Meine ist 98282499
Ich habe nur den Code nicht gepostet weil alle immer meinen "Ah poste nicht alles" und "BAN 4 LIFE" Ich werd es jetzt aber trotzdem tun, obwohl ich denke dass der Fehler in einer kleinen Zeile ist. Bitte hasst mich nicht deswegen! Aber vielleicht ist ja einer bei der Arbeit und hat bisher nichts zu tun
Ich habe die Blitdinge mit ///////////////// versehen (an 2 Stellen, WinMain() und Render()) also bitte zuerst da schauen. Da wird ja wohl der Fehler sein.
Übrigens weiss ich nicht für was die Funktion DeterminePixel ist, die hab ich mal aus dem Forum kopiert, brauch ich da wo ich bin noch nicht soweit ich weiss.
Sorry dass ich nicht auf der CD im Code nachschauen kann, aber CDs verlieren sich halt nun mal schneller als ganze Bücher
CPP: | /////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////
//sekundäre oberfläche laden
lpDDSurface = CreateSurfaceFromBitmap("G:\britney.bmp",100,100);
/////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////
//bild anzeigen
lpDDSPrimary->BltFast(10,10,lpDDSurface,NULL,DDBLT_WAIT);
/////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////
|
_________________ Greetz CorDharel
Zuletzt bearbeitet von CorDharel am 11.07.2005, 16:18, insgesamt einmal bearbeitet |
|
Nach oben |
|
|
DirectXer Dark JLI'ler
Anmeldedatum: 05.02.2005 Beiträge: 1201 Wohnort: Köln Medaillen: Keine
|
Verfasst am: 07.07.2005, 11:46 Titel: |
|
|
hmm, ich hab im Moment keine Zeit, vielleicht guck ich mir den nachher ma an.
BTW: Patricks ICQ-Number steht in seiner Sig. Weiß ich aus eigener Erfahrung Vielleicht erlaubt dir ja auch einer, seinen Websace zu benutzen... Dann kannstes uploaden |
|
Nach oben |
|
|
HomeLess_PunkDrummer JLI Master Trainee
Alter: 36 Anmeldedatum: 28.11.2004 Beiträge: 583 Wohnort: Alter Joghurtbecher an der A4 Medaillen: Keine
|
Verfasst am: 07.07.2005, 19:56 Titel: |
|
|
Das beste ist wenn du bei komplexen Sachen wie Apis damit anfängst sie einfach zu initialisieren Denn: Funktionen die du nicht kennst, die aber da sind und du hast sie nicht geschrieben verwirren nur. Glaub mir, ich spreche aus Erfahrung _________________ "Was die Götter angeht, so ist es mir unmöglich, zu wissen, ob sie existieren oder nicht, noch, was ihre Gestalt sei. Die Kräfte, die mich hindern, es zu wissen, sind zahlreich, und auch ist die Frage verworren und das menschliche Leben kurz." |
|
Nach oben |
|
|
CorDharel Junior JLI'ler
Anmeldedatum: 15.10.2002 Beiträge: 73 Wohnort: Winterthur, Zürich, CH Medaillen: Keine
|
Verfasst am: 11.07.2005, 16:18 Titel: |
|
|
Schaut euch den Code bitte nochmals an. Da passiert ja der Fehler. Ich hab den Rest wieder gelöscht, da der ja funktioniert. _________________ Greetz CorDharel |
|
Nach oben |
|
|
CorDharel Junior JLI'ler
Anmeldedatum: 15.10.2002 Beiträge: 73 Wohnort: Winterthur, Zürich, CH Medaillen: Keine
|
Verfasst am: 14.07.2005, 18:11 Titel: |
|
|
So ich hab jetz was neues herausgefunden. Es geht zwar immer noch nicht aber ich weiss jetzt warum man zwei backslashes benötigt bei G:\\britney.bmp.
Ich glaube der Fehler liegt bei der Funktion CreateSurfaceFromImage. Wenn ich die Debugge, und er bei der Zeile
Code: | //bild laden
hBM = (HBITMAP)LoadImage(0,File, IMAGE_BITMAP,dWidth,dHeight,LR_LOADFROMFILE); |
vorbeigeht steht bei hBM immer noch wie am anfang:
Zitat: | CXX0030: Error: expression cannot be evaluated |
Das kann doch nicht sein oder _________________ Greetz CorDharel |
|
Nach oben |
|
|
CorDharel Junior JLI'ler
Anmeldedatum: 15.10.2002 Beiträge: 73 Wohnort: Winterthur, Zürich, CH Medaillen: Keine
|
Verfasst am: 21.07.2005, 01:15 Titel: |
|
|
Die Lösung zu allen Problemen findet der werte Leser in diesem Thread:
Klick mich _________________ Greetz CorDharel |
|
Nach oben |
|
|
GDN-chef Mini JLI'ler
Anmeldedatum: 15.11.2005 Beiträge: 10
Medaillen: Keine
|
Verfasst am: 15.11.2005, 16:45 Titel: LoadImage Problem |
|
|
Hallo
Hab ein ahnliches Problem, möchte ein Bild blitten, arbeite auch mit einer 2. Surface
Wie auch immer ich hab hier den Code:
Uploadlink:
[url=http://rapidshare.de/files/7675280/Main.cpp.html ]Main()[/url] |
|
Nach oben |
|
|
Blubb-Tec JLI'ler
Alter: 33 Anmeldedatum: 29.03.2005 Beiträge: 171 Wohnort: Düsseldorf Medaillen: Keine
|
Verfasst am: 15.11.2005, 17:24 Titel: |
|
|
[quote="CorDharel"]
Code: | CreateSurfaceFromBitmap("G:\britney.bmp",100,100); |
/quote]
also ich würde ja nen doppel-\\ benutzen:
CreateSurfaceFromBitmap("G:\\britney.bmp",100,100);
(code/cpp-tags gingen nich wegen (b)(/b)) _________________ www.planlos.de |
|
Nach oben |
|
|
|
|
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
|