資源描述:
《mfc俄羅斯方塊收集資料》由會員上傳分享,免費在線閱讀,更多相關內容在行業(yè)資料-天天文庫。
1、假如要做,首先要確定游戲的架構,有主體全局有地圖角色NPC個個模塊都分開,就是面向對象思想,控制臺游戲重點是,要把畫的東西都寫入緩沖區(qū),然后再畫出,否者會閃屏我寫個重要的給你吧這是寫入緩沖數(shù)組里面voidDrawBufferString(intiX,intiY,constchar*szText,intiFRColor,intiBGColor){if(iX<0
2、
3、iX>=GAME_WIDTH
4、
5、iY<0
6、
7、iY>=GAME_HEIGHT){return;}intiLen=strlen(szText);WORDclr=iFRColor
8、iBGColor;i
9、ntl=(iX+iLen>GAME_WIDTH)?(GAME_WIDTH-iX):iLen;strncpy(&g_ScreenBuffer[iY][iX],szText,l);for(inti=0;i10、utCharacter(hConsole,g_ScreenBuffer[i],GAME_WIDTH,rd,&wd);rd.Y++;}rd.Y=0;for(inti=0;i11、apm_bitmap,*m_pOldBitmap;m_bitmap.CreateCompatibleBitmap(pDC,20*(WIDTH-2),20*(HEIGHT-1));//創(chuàng)建兼容位圖CDCMemdc;Memdc.CreateCompatibleDC(pDC);//創(chuàng)建兼容DCm_pOldBitmap=Memdc.SelectObject(&m_bitmap);for(inth=0;h12、dRect(20*w-20,20*h,20,20,m_clrBigMap[h][w]);Memdc.Draw3dRect(20*w-20,20*h,20,20,m_clrTopLeft,m_clrBottomRight);}}//畫當前下落方塊for(inty=0;y13、lrCurPiece);Memdc.Draw3dRect(20*(x+m_xPos-1),20*(y+m_yPos),20,20,m_clrTopLeft,m_clrBottomRight);}}pDC->BitBlt(2+35,88,20*(WIDTH-2),20*(HEIGHT-1),&Memdc,0,0,SRCCOPY);Memdc.SelectObject(m_pOldBitmap);m_bitmap.DeleteObject();Memdc.DeleteDC();}我有源程序,需要可聯(lián)系最近對小游戲很有熱情,做過24點游戲后覺得不是很完善,改
14、了又改,最終還是那個樣子,于是想做個新鮮的,于是開始把目光盯上了俄羅斯方塊。好家伙,這個經(jīng)典。小時候很喜歡玩的小游戲。哈,就是它了。。。于是就這樣開始了我俄羅斯方塊之路。首先還是算法,俄羅斯方塊主要是界面刷新,開始想到把所有的方塊形態(tài)(7個)用圖片做出來,在定時器中移動圖片的y坐標。圖片是容易貼,y坐標也容易移動??墒欠綁K的背景色在界面背景上顯得很突兀,即使方塊圖片在PS中處理成透明色的,背景色也不是透明的。還有就是圖片是矩形的,而在方塊與方塊接觸的地方是不規(guī)則的,這樣在方塊與方塊接觸判斷的地方出現(xiàn)了難題。開始想利用這種方法解決:選取要透明的RGB色作
15、為透明色,用異或方式與原圖比較,相同的保留,剩下的就是方塊。這樣方塊距沒有多余的部分了。但接觸