二维数组在俄罗斯方块游戏编程中的应用

二维数组在俄罗斯方块游戏编程中的应用

ID:24667903

大小:52.50 KB

页数:4页

时间:2018-11-15

二维数组在俄罗斯方块游戏编程中的应用_第1页
二维数组在俄罗斯方块游戏编程中的应用_第2页
二维数组在俄罗斯方块游戏编程中的应用_第3页
二维数组在俄罗斯方块游戏编程中的应用_第4页
资源描述:

《二维数组在俄罗斯方块游戏编程中的应用》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、二维数组在俄罗斯方块游戏编程中的应用在俄罗斯方块游戏编程过程中,二维数组起到了至关重要的作用,我们通过控制二维数组元素的值来达到控制方块的目的,在游戏中的障碍判断、行满判断及其各种形状方块的左右移动,实际上都需要借助于它。本文借俄罗斯方块游戏编程来指导大家对二维数组的学习和应用。关键词:二维数组;坐标;位图(DIB)资源  俄罗斯方块是大家都很熟悉的游戏,在其Height。其中mHeight分别是小方块的宽和高,我们通常设定两者相等。我们可以理解,在功能实现上,可以看做是先擦除图案,往下移动一个mHeight距离后再将图案显示出来的过程。若移动一个mH

2、eight距离后,任一个小方块的左上角纵坐标都没有超出方框底线,并且任一小方块当前所处位置所对应的数组元素都不等于1,就说明当前图案没有到底,也没有遇到障碍物,这是我们可以直接将其显示出来;否则,在显示之前应当向上移动一个mHeight距离,即取消刚才所做的距离移动。在这里擦除图案和显示图案分别用函数EraseDesign()和PaintDesign()来实现;函数CalcStatus()的作用是计算public变量i1-i4、j1-j4的值,这里擦除图案和显示图案分别用函数EraseDesign()和PaintDesign()来实现。函数Calcst

3、atus()的作用是计算public变量i1到i4、j1到j4的值,程序代码如下:VoidCBlocksVieer(UINTnIDEvent){EraseDesign();cy1+=mHeight;cy2+=mHeight;cy3+=mHeight;cy4+=mHeight;CalcStatus();if(cy1>(ulPosy+frmHeight)︱︱cy2>(ulPosy+frmHeight)︱︱cy3>(ulPosy+frmHeight)︱︱cy4>(ulPosy+frmHeight)︱︱(array[i1][j1]==1)︱︱(array[i2

4、][j2]==1)︱︱(array[i3][j3]==1)︱︱(array[i4][j4]==1)){cy1-=mHeight;cy2-=mHeight;cy3-=mHeight;cy4-=mHeight;PaintDesign();array[(cy1-ulPosy-frmHeight][(cx1-ulPosx-frmHeight][(cx2-ulPosx-frmHeight][(cx3-ulPosx-frmHeight][(cx4-ulPosx-frmHeight);CRectrect2(cx2,cy2,cx2+mHeight);CRectrect

5、3(cx3,cy3,cx3+mHeight);CRectrect4(cx4,cy4,cx4+mHeight);dc.FillRect(&rect1,&apBmp;Bmp.LoadBitmap(ID-101);ppDC,CreatepatibleDC(&dc);CBitmap*m-OldBmp=ppDC.SelectObject(&Bmp);dc.BitBlt(cx1,cy1,mHeight,&ppDC,0,0,SRCCOPY);dc.BitBlt(cx2,cy2,mHeight,&ppDC,0,0,SRCCOPY);dc.BitBlt(cx3,cy3,

6、mHeight,&ppDC,0,0,SRCCOPY);dc.BitBlt(cx4,cy4,mHeight,&ppDC,0,0,SRCCOPY);ppDC.SelectObject(m-OldBap);}voidCBlocksVieHeight;j1=(cx1-ulPosx-frmp;Bmp.LoadBitmap(ID-101);ppDC,CreatepatibleDC(&dc);CBitmap*m-OldBmp=ppDC.SelectObject(&Bmp);for(inti=19;i>=0;i--){BOOLIsFilled=TURE;for(int

7、j=0;j<=15;j++)if(array[i][j]==0){BOOLIsFilled=FALSE;break;}//消去一行if(IsFilled){CRectrc1(ulPosx+frmHeight+ulPosy+frmHeight);dc.FillRect(&rect1,&=0;m<=15;m++){if(array[n][m]==1)dc.BitBlt(m*mHeight+ulPosy+frmHeight,&ppDC,0,0,SRCCOPY);else{CRectrect(m*mHeight+ulPosy+frmHeight),dc.Fil

8、lRect(&rect,&-OldBmp);}  可以看出,在程序的开发处理中,二维数组起到至

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。