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...




Anmelden zum Antworten