欢迎来到天天文库
浏览记录
ID:9946984
大小:112.54 KB
页数:7页
时间:2018-05-16
《mfc俄罗斯方块收集资料》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、假如要做,首先要确定游戏的架构,有主体全局有地图角色NPC个个模块都分开,就是面向对象思想,控制台游戏重点是,要把画的东西都写入缓冲区,然后再画出,否者会闪屏我写个重要的给你吧这是写入缓冲数组里面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));//创建兼容位图CDCMemdc;Memdc.CreateCompatibleDC(pDC);//创建兼容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();}我有源程序,需要可联系最近对小游戏很有热情,做过24点游戏后觉得不是很完善,改14、了又改,最终还是那个样子,于是想做个新鲜的,于是开始把目光盯上了俄罗斯方块。好家伙,这个经典。小时候很喜欢玩的小游戏。哈,就是它了。。。于是就这样开始了我俄罗斯方块之路。首先还是算法,俄罗斯方块主要是界面刷新,开始想到把所有的方块形态(7个)用图片做出来,在定时器中移动图片的y坐标。图片是容易贴,y坐标也容易移动。可是方块的背景色在界面背景上显得很突兀,即使方块图片在PS中处理成透明色的,背景色也不是透明的。还有就是图片是矩形的,而在方块与方块接触的地方是不规则的,这样在方块与方块接触判断的地方出现了难题。开始想利用这种方法解决:选取要透明的RGB色作15、为透明色,用异或方式与原图比较,相同的保留,剩下的就是方块。这样方块距没有多余的部分了。但接触
10、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));//创建兼容位图CDCMemdc;Memdc.CreateCompatibleDC(pDC);//创建兼容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();}我有源程序,需要可联系最近对小游戏很有热情,做过24点游戏后觉得不是很完善,改14、了又改,最终还是那个样子,于是想做个新鲜的,于是开始把目光盯上了俄罗斯方块。好家伙,这个经典。小时候很喜欢玩的小游戏。哈,就是它了。。。于是就这样开始了我俄罗斯方块之路。首先还是算法,俄罗斯方块主要是界面刷新,开始想到把所有的方块形态(7个)用图片做出来,在定时器中移动图片的y坐标。图片是容易贴,y坐标也容易移动。可是方块的背景色在界面背景上显得很突兀,即使方块图片在PS中处理成透明色的,背景色也不是透明的。还有就是图片是矩形的,而在方块与方块接触的地方是不规则的,这样在方块与方块接触判断的地方出现了难题。开始想利用这种方法解决:选取要透明的RGB色作15、为透明色,用异或方式与原图比较,相同的保留,剩下的就是方块。这样方块距没有多余的部分了。但接触
11、apm_bitmap,*m_pOldBitmap;m_bitmap.CreateCompatibleBitmap(pDC,20*(WIDTH-2),20*(HEIGHT-1));//创建兼容位图CDCMemdc;Memdc.CreateCompatibleDC(pDC);//创建兼容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();}我有源程序,需要可联系最近对小游戏很有热情,做过24点游戏后觉得不是很完善,改14、了又改,最终还是那个样子,于是想做个新鲜的,于是开始把目光盯上了俄罗斯方块。好家伙,这个经典。小时候很喜欢玩的小游戏。哈,就是它了。。。于是就这样开始了我俄罗斯方块之路。首先还是算法,俄罗斯方块主要是界面刷新,开始想到把所有的方块形态(7个)用图片做出来,在定时器中移动图片的y坐标。图片是容易贴,y坐标也容易移动。可是方块的背景色在界面背景上显得很突兀,即使方块图片在PS中处理成透明色的,背景色也不是透明的。还有就是图片是矩形的,而在方块与方块接触的地方是不规则的,这样在方块与方块接触判断的地方出现了难题。开始想利用这种方法解决:选取要透明的RGB色作15、为透明色,用异或方式与原图比较,相同的保留,剩下的就是方块。这样方块距没有多余的部分了。但接触
12、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();}我有源程序,需要可联系最近对小游戏很有热情,做过24点游戏后觉得不是很完善,改14、了又改,最终还是那个样子,于是想做个新鲜的,于是开始把目光盯上了俄罗斯方块。好家伙,这个经典。小时候很喜欢玩的小游戏。哈,就是它了。。。于是就这样开始了我俄罗斯方块之路。首先还是算法,俄罗斯方块主要是界面刷新,开始想到把所有的方块形态(7个)用图片做出来,在定时器中移动图片的y坐标。图片是容易贴,y坐标也容易移动。可是方块的背景色在界面背景上显得很突兀,即使方块图片在PS中处理成透明色的,背景色也不是透明的。还有就是图片是矩形的,而在方块与方块接触的地方是不规则的,这样在方块与方块接触判断的地方出现了难题。开始想利用这种方法解决:选取要透明的RGB色作15、为透明色,用异或方式与原图比较,相同的保留,剩下的就是方块。这样方块距没有多余的部分了。但接触
13、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();}我有源程序,需要可联系最近对小游戏很有热情,做过24点游戏后觉得不是很完善,改
14、了又改,最终还是那个样子,于是想做个新鲜的,于是开始把目光盯上了俄罗斯方块。好家伙,这个经典。小时候很喜欢玩的小游戏。哈,就是它了。。。于是就这样开始了我俄罗斯方块之路。首先还是算法,俄罗斯方块主要是界面刷新,开始想到把所有的方块形态(7个)用图片做出来,在定时器中移动图片的y坐标。图片是容易贴,y坐标也容易移动。可是方块的背景色在界面背景上显得很突兀,即使方块图片在PS中处理成透明色的,背景色也不是透明的。还有就是图片是矩形的,而在方块与方块接触的地方是不规则的,这样在方块与方块接触判断的地方出现了难题。开始想利用这种方法解决:选取要透明的RGB色作
15、为透明色,用异或方式与原图比较,相同的保留,剩下的就是方块。这样方块距没有多余的部分了。但接触
此文档下载收益归作者所有