godofkills
Lt. Commander
- Registriert
- Dez. 2009
- Beiträge
- 1.997
Guten Abend zusammen,
ihr seit meine letze Rettung.
Folgende Situation:
Da mir heut langweilig war, dachte ich mir, dass ich mal eine Runde programmiere.
Nach einiger Zeit war ich dabei ein kleines Jump 'n' Run Game zu machen.
Da biete es sich ja an, ganz primitiv, mit Bitmaps zu arbeiten und dadurch Grafiken darstellen.
Ich habe jeweils für die Wolken, Hintergrund und Boden eine Klasse.
Diesen Klassen wird die unten genannte Methode vererbt.
In der main steht folgender Methoden Aufruf:" h1.load_hintergrund();"
Und in der Methode des Objekt hintergrund steht dann:" load("farbe/hellblau.bmp",x,y);"
Aber sobald ich das aktuelle Konsolen Bild zum 4.-6. mal erneuer will(Hintergrund, den Boden und die Wolke) hört die Funktion auf die Bitmaps zu laden.
D.h er lädt den Hintergrund und dann die nächsten Bitmaps nicht mehr.
HBITMAP hBitmap = (HBITMAP)LoadImage(NULL,szBitmap, IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
if (!hBitmap) return 1;
BITMAP bmp;
GetObject(hBitmap,sizeof(bmp),&bmp);
HWND hwnd = FindWindow("ConsoleWindowClass",NULL);
if (!hwnd) return 2;
HDC hDC = GetDC(hwnd);
if (!hDC) return 3;
HDC hBitmapDC = CreateCompatibleDC(hDC);
if (!hBitmapDC) return 4;
SelectObject(hBitmapDC,hBitmap);
BitBlt(hDC,PosX,PosY,bmp.bmHeight,bmp.bmWidth,hBitmapDC,0,0,SRCCOPY);
DeleteObject(hBitmap);
ReleaseDC(hwnd,hBitmapDC);
ReleaseDC(hwnd,hDC);
Und zwar genau diese Abfrage wird gültig.
if (!hBitmap) return 1;
Und somit überspringt er den Rest.
Und lädt die Bitmap nicht mehr. Ein Freund meinte das irgendein Puffer/Cache gelehrt werden müsste.
Ich hoffe ihr könnt mir helfen.
ihr seit meine letze Rettung.
Folgende Situation:
Da mir heut langweilig war, dachte ich mir, dass ich mal eine Runde programmiere.
Nach einiger Zeit war ich dabei ein kleines Jump 'n' Run Game zu machen.
Da biete es sich ja an, ganz primitiv, mit Bitmaps zu arbeiten und dadurch Grafiken darstellen.
Ich habe jeweils für die Wolken, Hintergrund und Boden eine Klasse.
Diesen Klassen wird die unten genannte Methode vererbt.
In der main steht folgender Methoden Aufruf:" h1.load_hintergrund();"
Und in der Methode des Objekt hintergrund steht dann:" load("farbe/hellblau.bmp",x,y);"
Aber sobald ich das aktuelle Konsolen Bild zum 4.-6. mal erneuer will(Hintergrund, den Boden und die Wolke) hört die Funktion auf die Bitmaps zu laden.
D.h er lädt den Hintergrund und dann die nächsten Bitmaps nicht mehr.
HBITMAP hBitmap = (HBITMAP)LoadImage(NULL,szBitmap, IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
if (!hBitmap) return 1;
BITMAP bmp;
GetObject(hBitmap,sizeof(bmp),&bmp);
HWND hwnd = FindWindow("ConsoleWindowClass",NULL);
if (!hwnd) return 2;
HDC hDC = GetDC(hwnd);
if (!hDC) return 3;
HDC hBitmapDC = CreateCompatibleDC(hDC);
if (!hBitmapDC) return 4;
SelectObject(hBitmapDC,hBitmap);
BitBlt(hDC,PosX,PosY,bmp.bmHeight,bmp.bmWidth,hBitmapDC,0,0,SRCCOPY);
DeleteObject(hBitmap);
ReleaseDC(hwnd,hBitmapDC);
ReleaseDC(hwnd,hDC);
Und zwar genau diese Abfrage wird gültig.
if (!hBitmap) return 1;
Und somit überspringt er den Rest.
Und lädt die Bitmap nicht mehr. Ein Freund meinte das irgendein Puffer/Cache gelehrt werden müsste.
Ich hoffe ihr könnt mir helfen.