做貪吃蛇。要求同時出現一個炸彈和一個食物。
畫食物畫蛇都沒問題。就是把畫炸彈加進去就一直報錯。
//繪制蛇的樣式
CPaintDC dc( this );
CDC MemDC;
CDC MemDC2;
CPen pen;
MemDC.SelectObject( &pen );
MemDC2.SelectObject( &pen );
CPen yspen;
yspen.CreatePen(1,1,RGB(255,255,255)); //定義白色畫筆繪制蛇的邊框
MemDC.SelectObject(&yspen);
MemDC2.SelectObject(&yspen);
CBrush ysbrush;
CBrush ysbrush2;
//
{
ysbrush.CreateSolidBrush(RGB(0,255,0));
MemDC.SelectObject(&ysbrush);
//繪制果實
MemDC.Rectangle(
CRect(10+m_psFood.y*10,
120+m_psFood.x*10,
10+(m_psFood.y+1)*10,
120+(m_psFood.x+1)*10)
);
}
ysbrush2.CreateSolidBrush(RGB(0,0,0));
MemDC2.SelectObject(&ysbrush2);
//繪制炸彈
MemDC2.Rectangle(
CRect(10+m_psBomb.y*10,
120+m_psBomb.x*10,
10+(m_psBomb.y+1)*10,
120+(m_psBomb.x+1)*10)
);
dc.BitBlt( 0, 0, 325, 425, &MemDC,0, 0, SRCCOPY );
}


uj5u.com熱心網友回復:
崩潰的時候在彈出的對話框按相應按鈕進入除錯,按Alt+7鍵查看Call Stack即“呼叫堆疊”里面從上到下列出的對應從里層到外層的函式呼叫歷史。雙擊某一行可將游標定位到此次呼叫的源代碼或匯編指令處,看不懂時雙擊下一行,直到能看懂為止。uj5u.com熱心網友回復:
你的MemDC2干嘛用了?uj5u.com熱心網友回復:
MemDC和MemDC1不是同一個東西,也就是說不需要MemDC1,你在畫其它內容時,只需要改變MemDC和你想要的畫筆的關系即可。uj5u.com熱心網友回復:
CPaintDC dc( this );CDC MemDC;
CDC MemDC2;
CPen yspen;
yspen.CreatePen(1,1,RGB(255,255,255)); //定義白色畫筆繪制蛇的邊框
MemDC.SelectObject(&yspen);
MemDC2.SelectObject(&yspen);
uj5u.com熱心網友回復:
MemDC2都沒看到你CreateCompatibleBitmap或創建DIB位圖轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/64031.html
標籤:圖形處理/算法
