Frage zu 2D-Spiel
-
Hi,
ich möchte ein 2D-Spiel programmieren und habe eine Frage.
Der folgende Quellcode dient zur Ausgabe von zwei Bitmaps, vobei die eine(IDB_BITMAP1) kleiner ist als die andere(IDB_HINTERGRUND) und als Spielfigur dient, in einem Fenster:#include "stdafx.h"
#include
#includeclass CMeinHauptfenster : public CFrameWnd {
public:
CMeinHauptfenster();
protected:
afx_msg void OnPaint();
DECLARE_MESSAGE_MAP();};
CMeinHauptfenster::CMeinHauptfenster() {
Create(NULL, "",WS_SYSMENU, rectDefault);};
void CMeinHauptfenster::OnPaint() {//Hintergrundbitmap
CBitmap *pMeinBild = new CBitmap;
pMeinBild->LoadBitmap(IDB_HINTERGRUND);BITMAP bm;
CPaintDC dc(this);
CDC MeinDC;
MeinDC.CreateCompatibleDC(NULL);
MeinDC.SelectObject(pMeinBild);
pMeinBild->GetObject(sizeof(bm), &bm);dc.BitBlt(10,10, bm.bmWidth, bm.bmHeight, &MeinDC,15,15,SRCCOPY);
//zweite Bitmap
CBitmap *pMeinBild2 = new CBitmap;
pMeinBild2->LoadBitmap(IDB_BITMAP1);BITMAP bm2;
CPaintDC dc(this);
CDC MeinDC2;
MeinDC2.CreateCompatibleDC(NULL);
MeinDC2.SelectObject(pMeinBild2);
pMeinBild2->GetObject(sizeof(bm), &bm);dc.BitBlt(10,10, bm.bmWidth, bm.bmHeight, &MeinDC2,15,15,SRCCOPY);
}
BEGIN_MESSAGE_MAP(CMeinHauptfenster,CFrameWnd)
ON_WM_PAINT()
END_MESSAGE_MAP()class CMeineAnwendung : public CWinApp {
public:
virtual BOOL InitInstance();
};BOOL CMeineAnwendung::InitInstance() {
m_pMainWnd = new CMeinHauptfenster();
m_pMainWnd -> ShowWindow(SW_SHOW);return TRUE;
}
CMeineAnwendung Programm;///////////////////////////////ENDE//////////////////////////////////////////////////////////////////////////////////////////////////////////
Nun möchte ich die zweite Bitmap löschen(vielleicht mit InvalidateRect()),
weiß aber nicht so recht wie.
Wie müsste mein oben aufgeführter Quellcode konkret verändert werden, um dies zu ereichen?
Ich besitze Visual C++ 6.0 und habe dieses Programm in einer Konsolen Anwendung geschrieben.
Ich würde mich über eine Antwort sehr freuen!Gruß Mr. X