|
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
mortl2 Junior JLI'ler
Anmeldedatum: 18.09.2002 Beiträge: 88 Wohnort: Straubing/Bayern Medaillen: Keine
|
Verfasst am: 16.11.2002, 14:56 Titel: CreateSurfacFromBitmap |
|
|
Wie kann ich denn die CreateSurfaceFromBitmap Funktion so "umbauen", das ich nicht auf DirectX zurückgreifen muss?
Mortl |
|
Nach oben |
|
|
AFE-GmdG JLI MVP
Alter: 45 Anmeldedatum: 19.07.2002 Beiträge: 1374 Wohnort: Irgendwo im Universum... Medaillen: Keine
|
Verfasst am: 16.11.2002, 15:23 Titel: |
|
|
Sicherlich.
Code: |
hBM=(HBITMAP)LoadImage(0, "Fatei.bmp", IMAGE_BITMAP, int_breite, int_höhe, LR_LOADFROMFILE);
|
AFE-GmdG _________________
CPP: | float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;} |
|
|
Nach oben |
|
|
mortl2 Junior JLI'ler
Anmeldedatum: 18.09.2002 Beiträge: 88 Wohnort: Straubing/Bayern Medaillen: Keine
|
Verfasst am: 16.11.2002, 18:30 Titel: |
|
|
Ok, es klappt. Jetzt ein weiteres Problem: Ich verwende die Standard Nachrichtenschleife wie sie im Buch steht(mit Render() Funktion), doch es wird nicht gezeichnet. Woran könnte das liegen?
Mortl |
|
Nach oben |
|
|
Sören JLI Master Trainee
Anmeldedatum: 26.07.2002 Beiträge: 647 Wohnort: Bonn Medaillen: Keine
|
Verfasst am: 16.11.2002, 18:33 Titel: |
|
|
Rufst du auch flip() auf? |
|
Nach oben |
|
|
mortl2 Junior JLI'ler
Anmeldedatum: 18.09.2002 Beiträge: 88 Wohnort: Straubing/Bayern Medaillen: Keine
|
Verfasst am: 16.11.2002, 18:41 Titel: |
|
|
Nein, da ich momentan kein DirectX verwende, aber ich glaub weniger dass das an flip() liegt,oder doch?
Mortl |
|
Nach oben |
|
|
Darkevel Mini JLI'ler
Anmeldedatum: 11.11.2002 Beiträge: 10
Medaillen: Keine
|
Verfasst am: 16.11.2002, 19:04 Titel: |
|
|
mit der Nachrichtenschleife( on paint oder so) wird etwas nur angezeigt wenn du die grösse deines Fensters veränderst oder ein anderes aktivierst. Mit loadBitmap läd man nur das Bild stellt es aber nicht dar. Dazu muss man es halt noch auf den Bildschirm blitten. Wie das ohne DX8 geht weiß ich aber nicht. |
|
Nach oben |
|
|
mortl2 Junior JLI'ler
Anmeldedatum: 18.09.2002 Beiträge: 88 Wohnort: Straubing/Bayern Medaillen: Keine
|
Verfasst am: 16.11.2002, 19:20 Titel: |
|
|
Nein, ich glaub du hast mich falsch verstanden, die Render Funktion funzt schon, sie wird nur in der Nachrichtenschleife nicht aufgerufen.
Hier mal der Code:
Code: |
while(TRUE)
{
if(PeekMessage(&msg,NULL,0,0,PM_REMOVE))
{
if(WM_QUIT == msg.message)
{
break;
}
TranslateMessage(&msg);
DispatchMessage(&msg);
}
else
{
//Würde funktionieren, wird aber nicht aufgerufen
Render();
}
}
|
Mortl |
|
Nach oben |
|
|
AFE-GmdG JLI MVP
Alter: 45 Anmeldedatum: 19.07.2002 Beiträge: 1374 Wohnort: Irgendwo im Universum... Medaillen: Keine
|
Verfasst am: 16.11.2002, 20:18 Titel: |
|
|
Hast du das mal mit einm Haltepunkt ausprobiert?
Wenn Render nämlich doch aufgerufen wird, ist nichts im Screen "ungültig", also es wird nichts gezeichnet. Verwendest du GetDC oder BeginPaint? Eventuell kannst du auch mit einem InvalidateRect() mehr Erfolg haben.
AFE-GmdG _________________
CPP: | float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;} |
|
|
Nach oben |
|
|
mortl2 Junior JLI'ler
Anmeldedatum: 18.09.2002 Beiträge: 88 Wohnort: Straubing/Bayern Medaillen: Keine
|
Verfasst am: 17.11.2002, 15:29 Titel: |
|
|
Ich benutze BeginPaint, hab’s mal mit InvalidateRect() probiert, es funktioniert zwar aber das Bild flackert. Da muss ich wohl doch wieder DirectX verwenden, oder kennt jemand eine flip() ähnliche Funktion?
Mortl |
|
Nach oben |
|
|
AFE-GmdG JLI MVP
Alter: 45 Anmeldedatum: 19.07.2002 Beiträge: 1374 Wohnort: Irgendwo im Universum... Medaillen: Keine
|
Verfasst am: 17.11.2002, 19:01 Titel: |
|
|
OK - Wenn du außerhalb der Nachrichtenbehandlungsroutine (WM_PAINT) Einen Gerätekontext haben willst, solltest du GetDC und nicht BeginPaint benutzen. Dann hast du nebenher auch gleich Zugriff auf das ganze Fenster, nicht nur auf ungültige Bereiche. Das Problem mit dem Flackern läßt sich auch ganz leicht lösen: Benutze einen Hintergrundpuffer, den du zum Schluß, wenn alles gezeichnet ist auf den Screen blittest. Der HGPuffer ist einfach ein Bitmap in Fenstergröße.
AFE-GmdG _________________
CPP: | float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;} |
|
|
Nach oben |
|
|
mortl2 Junior JLI'ler
Anmeldedatum: 18.09.2002 Beiträge: 88 Wohnort: Straubing/Bayern Medaillen: Keine
|
Verfasst am: 18.11.2002, 14:50 Titel: |
|
|
No DirectX!
Du wirst dich fragen warum, ich wollte eigentlich nur ein kleines Autorunprogramm schreiben(für 'ne CD), und Christian hat gesagt, dass bei der Buch CD der Grafische Teil nur mit dem GDI gemacht wurde.
Hier zum Nachlesen:
http://www.jliforum.de/board/viewtopic.php?t=291
Mortl |
|
Nach oben |
|
|
AFE-GmdG JLI MVP
Alter: 45 Anmeldedatum: 19.07.2002 Beiträge: 1374 Wohnort: Irgendwo im Universum... Medaillen: Keine
|
Verfasst am: 18.11.2002, 16:44 Titel: |
|
|
So, wie ich das Beschrieben habe, wird kein DX verwendet - der HG-Puffer ist doch einfach nur ein Bitmap. Dadrin kann man ganz genauso zeichnen, wie auf dem Screen und das Bitmap lässt sich dann auf den Screen Blitten - es entsteht kein Flackereffekt, da der Screen nicht gelöscht werden muß.
AFE-GmdG _________________
CPP: | float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;} |
|
|
Nach oben |
|
|
DerJJ Junior JLI'ler
Anmeldedatum: 24.12.2002 Beiträge: 84
Medaillen: Keine
|
Verfasst am: 24.12.2002, 11:38 Titel: |
|
|
Also, jetzt nochmal für ganz blöde
Also, ich will ein bild als kompletten hintergrund(im Fenster) habn,
aber ich weiß net so ganz wo das hinsoll...
bei mir kommt dann immer sowas wie hBM= ichtdeklarierter bezeichner...
also, kann auch sein das ich gestern bissl zuviel gesoffn hab und da nich so was raller, aber irgendwie funzt des net...
Und des mit dem bild als ressource einfügen kapier ich irgendwie überhaupt net...
will net ma einer sonn Tutoriel für Anfänger schreiben...
Wär echt brontal krass...
also, ich bedank mich schonmal für weitere antworten...
und: Bidde net lachen! |
|
Nach oben |
|
|
DaN00b JLI'ler
Anmeldedatum: 10.08.2002 Beiträge: 159
Medaillen: Keine
|
Verfasst am: 24.12.2002, 19:40 Titel: |
|
|
mehr sag ich dazu net _________________ Carpe Diem - Seize the day - Nütze den Tag! |
|
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
|