网站大量收购独家精品文档,联系QQ:2885784924

MFC俄罗斯方块收集资料.docxVIP

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MFC俄罗斯方块收集资料.docx

假如要做,首先要确定游戏的架构,有主体全局有地图角色 NPC个个模块都分开,就是面向对象思想,控制台游戏重点是,要把画的东西都写入缓冲区,然后再画出,否者会闪屏我写个重要的给你吧这是写入缓冲数组里面void DrawBufferString( intiX, intiY, const char* szText, intiFRColor, intiBGColor ){ if( iX 0 || iX = GAME_WIDTH ||iY 0 || iY = GAME_HEIGHT ) { return; }intiLen = strlen( szText ); WORD clr = iFRColor|iBGColor;int l = ( iX + iLen GAME_WIDTH )?( GAME_WIDTH - iX ):iLen;strncpy( g_ScreenBuffer[iY][iX], szText, l ); for( inti = 0; i l; i++) {g_ColorBuffer[iY][iX+i] = clr; }}这是写出void DrawBufferToString(){ HANDLE hConsole = GetStdHandle( STD_OUTPUT_HANDLE ); COORD rd = ; DWORD wd = 0; for( inti = 0; i GAME_HEIGHT; i++) {WriteConsoleOutputCharacter( hConsole, g_ScreenBuffer[i], GAME_WIDTH, rd, wd );rd.Y++; }rd.Y = 0; for( inti = 0; i GAME_HEIGHT; i++) {WriteConsoleOutputAttribute( hConsole, g_ColorBuffer[i], GAME_WIDTH, rd, wd );rd.Y++; }DeleteObject( hConsole );} 作判断,能不能下落,能就不断往下画呀。例:void CTETRISDlg::DrawBigMap(CDC *pDC)//绘制主游戏界面{CBitmapm_bitmap,*m_pOldBitmap; m_bitmap.CreateCompatibleBitmap(pDC,20*(WIDTH-2),20*(HEIGHT-1));//创建兼容位图 CDC Memdc;Memdc.CreateCompatibleDC(pDC);//创建兼容DCm_pOldBitmap=Memdc.SelectObject(m_bitmap); for(int h=0;hHEIGHT-1;h++) for(int w=1;wWIDTH-1;w++) { if(BigMap[h][w])//为1则绘制方块 {Memdc.FillSolidRect(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(int y=0;yY_COUNT;y++) for(int x=0;xX_COUNT;x++) { if(CurPiece[m_directionForCur][y][x])//为1则绘制方块 { Memdc.FillSolidRect(20*(x+m_xPos-1),20*(y+m_yPos),20,20,m_clrCurPiece); 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点游戏后觉得不是很完善,改了又改,最终还是那个样子,于是想做个新鲜的,于是开始把目光盯上了俄罗斯方块。好家伙,这个经典。小时候很喜欢玩的小游戏。哈,就是它了。。。于是就这样开始了我俄罗斯方块之路。首先还是算法,俄罗斯方块主要是界面刷新,开始想到把所有的方块形态(7个)用图片做出来,在定时器中移动图片的y坐标。

文档评论(0)

zhoujiahao + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档