【180628】再发一个基于VC++语言编写的俄罗斯方块游戏源码

再发一个基于VC++语言编写的俄罗斯方块游戏源码,非常经典的一款注游戏,记得在小时候,本游戏可是掌上游戏机里的最火爆的游戏。本游戏的编写立求简单、实用、易懂,代码绝对是您学习VC++游戏编写的好范例,特别是新手朋友,一定要看看哦。

源码下载地址:点击下载

备用下载地址:点击下载


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
int CIBrick::shiftLeft (CBin*bin) { unsigned int posX; posX=getPosX(); posX=posX-1; setPosX(posX); if(checkCollision(bin)==0) { setPosX(posX+1); return 0; } return 1; } int CIBrick::shiftDown (CBin*bin) { unsigned int posY; posY=getPosY(); posY=posY+1; setPosY(posY); if (checkCollision(bin)==0) { setPosY(posY-1); return 0; } return 1; } int CIBrick::shiftRight (CBin*bin) { unsigned int posX; posX =getPosX(); posX=posX+1; setPosX(posX); if(checkCollision(bin)==0) { setPosX(posX-1); return 0; } return 1; } int CIBrick::rotateClockwise(CBin*bin) { unsigned int orientation,oldOrientation; orientation=getOrientation(); oldOrientation=orientation; if (orientation==3) orientation=0; else orientation=orientation+1; setOrientation(orientation); if(checkCollision(bin)==0) { setOrientation(oldOrientation); return 0; } return 1; } int CIBrick::checkCollision(CBin*bin) { unsigned int width; unsigned int height; unsigned char**image; unsigned int orientation; unsigned int posX; unsigned int posY; width=bin->getWidth(); height=bin->getHeight(); image=new unsigned char* [height]; for(unsigned int i=0;i<height;i++) { image[i]=new unsigned char[width]; } bin->getImage(image); orientation=getOrientation(); posX=getPosX(); posY=getPosY(); if (orientation==0) { if((posX+1<1)||(posX>width-1)||(posY<1)||(posY+2>height-1)) return 0; if((image[posY-1][posX]!=0)||(image[posY][posX]!=0)||(image[posY+1][posX]!=0)||(image[posY+2][posX]!=0)) return 0; } if(orientation==1) { if ((posX<2)||(posX+1>width-1)||(posY+1)<1||(posY>height-1)) return 0; if ((image[posY][posX-2]!=0)||(image[posY][posX-1]!=0)||(image[posY][posX]!=0)||(image[posY][posX+1]!=0)) return 0; } if (orientation==2) { if((posX+1<1)||(posX>width-1)||(posY<2)||(posY+1>height-1)) return 0; if ((image[posY-2][posX]!=0)||(image[posY-1][posX]!=0)||(image[posY][posX]!=0)||(image[posY+1][posX]!=0)) return 0; } if (orientation==3) { if ((posX<1)||(posX+2>width-1)||(posY+1<1)||(posY>height-1)) return 0; if ((image[posY][posX-1]!=0)||(image[posY][posX]!=0)||(image[posY][posX+1]!=0)||(image[posY][posX+2]!=0)) return 0; } return 1; } void CIBrick::operator>>(unsigned char** binImage) { unsigned int orientation ; unsigned int posX; unsigned int posY; unsigned char colour; posX=getPosX(); posY=getPosY(); orientation=getOrientation(); colour=getColour(); if(orientation==0) { binImage[posY-1][posX]=colour; binImage[posY][posX]=colour; binImage[posY+1][posX]=colour; binImage[posY+2][posX]=colour; } if(orientation==1) { binImage[posY][posX-2]=colour; binImage[posY][posX-1]=colour; binImage[posY][posX]=colour; binImage[posY][posX+1]=colour; } if (orientation==2) { binImage[posY-2][posX]=colour; binImage[posY-1][posX]=colour; binImage[posY][posX]=colour; binImage[posY+1][posX]=colour; } if (orientation==3) { binImage[posY][posX-1]=colour; binImage[posY][posX]=colour; binImage[posY][posX+1]=colour; binImage[posY][posX+2]=colour; } } void CIBrick::putAtTop(unsigned int newOrient,unsigned int newPosX) { setPosX(newPosX); setOrientation(newOrient); switch (newOrient) { case 0: setPosY(1);break; case 1: setPosY(0);break; case 2: setPosY(2);break; case 3: setPosY(0);break; } } int CLBrick::shiftLeft (CBin*bin) { unsigned int posX; posX=getPosX(); posX=posX-1; setPosX(posX);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值