bewegungsabläufe ernsthaft
-
Hi
hab den code jetzt noch n bischen weiter geschriebn bin inzwischen auch schon
-->nüchtern<---naja jetzt flimmert auf jeden fall nimmer der bildschrim aba da wo es früher geflimmert hat bleibt der aktäur einfach stehen un man sieht halt ne riesige schlange(von teletubies) hinter meine teletubie need help bitte helft mir ... ach ja deus danke jetz weis ich wenigstens wie sowas heist...
hier der aktulle quellcode
void CGAAGHDlg::OnPaint(/*CDC* dc*/) { CPaintDC dc(this); CPaintDC* pDC = &dc; /// CGAAGHDlg* pDoc = GetDocument(); //ASSERT_VALID(pDoc); //CRect rcBounds; //GetClientRect(&rcBounds); //pDC->BitBlt( Xmann2, Ymann2, bm.bmWidth, bm.bmHeight, &TempDC, 0, 0, SRCCOPY ); //pDC->BitBlt( Xmann1, Ymann1, bm.bmWidth, bm.bmHeight, &TempDC, 0, 0, SRCCOPY ); CDC memDC; RECT rc; CMemDC mainDC(&dc); BITMAP bitmap; RECT Rect; BITMAP bmBackground; //BITMAP-Struktur bm deklarieren Bild[backGround].GetObject(sizeof(bmBackground),&bmBackground); //Größe und Adresse von CBitmap Bild[0] --> BITMAP bm memDC.CreateCompatibleDC(&dc); //SpeicherDC initialisieren memDC.SelectObject(&Bild[backGround]); //Hintergrundbild --> Speicher GetClientRect(&Rect); mainDC->StretchBlt(0,0,Rect.right,Rect.bottom,&memDC,0,0, bmBackground.bmWidth,bmBackground.bmHeight,SRCCOPY); //mainDC->BitBlt(0,0,Rect.right,Rect.bottom,&memDC,0,0,SRCCOPY); //CMemDC pDC(dc, &Rect); //pDC->FillRect(Rect, CBrush::FromHandle((HBRUSH)GetStockObject(1))); // pDC->Ellipse(rcBounds); /*CRect bounds; CRect lBounds; GetClientRect(&bounds); lBounds = bounds; CMemDC pDC(dc); m_container.Draw(pDC, bounds); pDC->SetTextColor(RGB(255, 255, 255)); pDC->SetBkMode(TRANSPARENT); pDC->SetTextAlign(TA_LEFT | TA_TOP); pDC->TextOut(0, 0, MapMode(pDC->GetMapMode())); */ //CMemDC MemDC(&dc,NULL); BITMAP bm; //BITMAP-Struktur bm deklarieren Bild[nBild].GetObject(sizeof(bm),&bm); //Größe und Adresse von CBitmap Bild[nBild] --> BITMAP bm CDC SpeicherDC; SpeicherDC.CreateCompatibleDC(pDC); //SpeicherDC initialisieren CBitmap *pOldImageBitmap = SpeicherDC.SelectObject(&Bild[nBild]); //Bild[nBild] --> Speicher CDC MaskDC; MaskDC.CreateCompatibleDC(pDC); //MaskDC initialisieren CBitmap MaskBitmap; MaskBitmap.CreateBitmap( bm.bmWidth, bm.bmHeight, 1, 1, NULL ); CBitmap *pOldMaskBitmap = MaskDC.SelectObject( &MaskBitmap ); SpeicherDC.SetBkColor( RGB(0,0,0) ); MaskDC.BitBlt( 0, 0, bm.bmWidth, bm.bmHeight, &SpeicherDC, 0, 0, SRCCOPY ); CDC OrDC; OrDC.CreateCompatibleDC( pDC ); CBitmap OrBitmap; OrBitmap.CreateCompatibleBitmap( &SpeicherDC, bm.bmWidth, bm.bmHeight ); CBitmap *pOldOrBitmap = OrDC.SelectObject( &OrBitmap ); OrDC.BitBlt( 0, 0, bm.bmWidth, bm.bmHeight, &SpeicherDC, 0, 0, SRCCOPY ); OrDC.BitBlt( 0, 0, bm.bmWidth, bm.bmHeight, &MaskDC, 0, 0, 0x220326 ); CDC TempDC; TempDC.CreateCompatibleDC( pDC ); CBitmap TempBitmap; TempBitmap.CreateCompatibleBitmap( &SpeicherDC, bm.bmWidth, bm.bmHeight ); CBitmap *pOldTempBitmap = TempDC.SelectObject( &TempBitmap ); TempDC.BitBlt( 0, 0, bm.bmWidth, bm.bmHeight, pDC, Xmann1, Ymann1, SRCCOPY ); TempDC.BitBlt( 0, 0, bm.bmWidth, bm.bmHeight, &MaskDC, 0, 0, SRCAND ); TempDC.BitBlt( 0, 0, bm.bmWidth, bm.bmHeight, &OrDC, 0, 0, SRCPAINT ); //CMemDC memeDC(&TempDC); // memeDC->BitBlt( Xmann1, Ymann1, NULL, NULL, &TempDC, 0, 0, SRCCOPY ); mainDC->BitBlt( Xmann1, Ymann1, bm.bmWidth, bm.bmHeight, &TempDC, 0, 0, SRCCOPY ); TempDC.SelectObject( pOldTempBitmap ); OrDC.SelectObject( pOldOrBitmap ); MaskDC.SelectObject( pOldMaskBitmap ); SpeicherDC.SelectObject( pOldImageBitmap ); + // CREATE NEW BITMAP MIT TRANSPARENTEM RAND CDC SpeicherDC2; CDC MaskDC2; CDC OrDC2; CBitmap OrBitmap2; CDC TempDC2; CBitmap TempBitmap2; CBitmap MaskBitmap2; BITMAP bm2; //BITMAP-Struktur bm deklarieren Bild[nBild2].GetObject(sizeof(bm2),&bm2); //Größe und Adresse von CBitmap Bild[nBild] --> BITMAP bm SpeicherDC2.CreateCompatibleDC(pDC); //SpeicherDC initialisieren CBitmap *pOldImageBitmap2 = SpeicherDC2.SelectObject(&Bild[nBild2]); //Bild[nBild] --> Speicher MaskDC2.CreateCompatibleDC(pDC); //MaskDC initialisieren MaskBitmap2.CreateBitmap( bm2.bmWidth, bm2.bmHeight, 1, 1, NULL ); CBitmap *pOldMaskBitmap2 = MaskDC2.SelectObject( &MaskBitmap2 ); SpeicherDC2.SetBkColor( RGB(0,0,0) ); MaskDC2.BitBlt( 0, 0, bm2.bmWidth, bm2.bmHeight, &SpeicherDC2, 0, 0, SRCCOPY ); OrDC2.CreateCompatibleDC( pDC ); OrBitmap2.CreateCompatibleBitmap( &SpeicherDC2, bm2.bmWidth, bm2.bmHeight ); CBitmap *pOldOrBitmap2 = OrDC2.SelectObject( &OrBitmap2 ); OrDC2.BitBlt( 0, 0, bm2.bmWidth, bm2.bmHeight, &SpeicherDC2, 0, 0, SRCCOPY ); OrDC2.BitBlt( 0, 0, bm2.bmWidth, bm2.bmHeight, &MaskDC2, 0, 0, 0x220326 ); TempDC2.CreateCompatibleDC( pDC ); TempBitmap2.CreateCompatibleBitmap( &SpeicherDC2, bm2.bmWidth, bm2.bmHeight ); CBitmap *pOldTempBitmap2 = TempDC2.SelectObject( &TempBitmap2 ); TempDC2.BitBlt( 0, 0, bm2.bmWidth, bm2.bmHeight, pDC, Xmann2, Ymann2, SRCCOPY ); TempDC2.BitBlt( 0, 0, bm2.bmWidth, bm2.bmHeight, &MaskDC2, 0, 0, SRCAND ); TempDC2.BitBlt( 0, 0, bm2.bmWidth, bm2.bmHeight, &OrDC2, 0, 0, SRCPAINT ); //CMemDC memeDC2(&TempDC2); //memeDC2->BitBlt( Xmann1, Ymann1, bm2.bmWidth, bm2.bmHeight, &TempDC2, 0, 0, SRCCOPY ); mainDC->BitBlt( Xmann2, Ymann2, bm2.bmWidth, bm2.bmHeight, &TempDC2, 0, 0, SRCCOPY ); pDC->BitBlt(0,0,800,600,&mainDC,0,0,SRCCOPY); TempDC2.SelectObject( pOldTempBitmap2 ); OrDC2.SelectObject( pOldOrBitmap2 ); MaskDC2.SelectObject( pOldMaskBitmap2 ); SpeicherDC2.SelectObject( pOldImageBitmap2 );hier noch kruz erklärt ich hab des ganze zeugs in die eine mainDC kopiert...
bitte clost nicht gleich den threat usw. und falls es wenn interessiert ich würde wirklich gerne directX programmieren nur geht die scheise auf meine pc nischt...
-
DirectX geht auf deinem PC nicht???????????
(einmal davon abgesehen: es gibt immer noch OpenGL
)
-
jo
DirectX geht irgendwie net egal was ich mach wenn des fenster göffnet wird wirds gleich wieder geclost.. naja ihc würde furchtbar gerne opengl programmieren nur hast du n gutes tut oda sowas und des Geld fün buch hab ich ned also könnte ihr mir bittttteeee helfen das des aufhört ne schlange zu zeigen... irgendwie ist die schlange nur inerhalb des Bildes des sich bewegt wie bei InvalidDateRect() nur umgekehrt alles um das bild wird neugezeichnet nur das bild nicht... bitte help mir ich kann gerne mal des prog posten wers braucht...
-
Das Tut von NeHe: http://nehe.gamedev.net/default.asp
Deutsche Übersetzung: http://www.codeworx.org/opengl_tuts.php
http://www.google.de