一.项目名称 十二生肖俄罗斯方块 二.开发背景: 俄罗斯方块是一个很低古老的一个小游戏,到但今日它还有很大的魅力。 三.技术路线或工作原理: 采用的软件及开发平台 Micosoft Visual ++6.0http://www.16sheji8.cn/ 项目的总体方案 1.生成方块模块。通过随机函数生成随机数来确定生成方块的种类。 2.键盘输入模块。通过消息映射来处理各种从键盘传入的信息。包括方块左走,右走,快速下降和变形。 3.得分模块。当方块下到底后判断玩家有没得分。 4.游戏数据记录模块。保存方块的个数和地点。 5.游戏结束模块。判断游戏是否已经结束。 四.算法描述(程序部分源码或伪代码) 1.在CMy1View.h开始时加入: #define heng 15 #define shu 30 #define size 20 2.在类CMy1View中增加成员变量: BITMAP bmfange; BITMAP bmbeijing; CBitmap bbeijing; CBitmap bfange; int score; 得分 int y; 活动方块的Y坐标 int x; 活动方块的X坐标 int yanshi; 活动方块的方向式样 int huodon; 活动方块的种类 int fange[shu+2][heng+2]; 记录游戏中每个方格中有没方块和方块的种类 3.在类CMy1View中增加成员函数: void getscore(); 计算得分 void gameover(); 判断是否游戏结束 void changeyanshi(); 改变活动方块的方向式样 void goright(); 活动方块向右走 void goleft(); 活动方块向左走 void godown(); 活动方块响下走 void gaiweizhi(int r); 改变活动方块的位置,用于函数goright(),goleft(),godown中 void shengcheng(); 生成新的活动方块 由于函数的内容过大,函数具体内容请老师见于工程 4,在类CMy1View中修改函数CMy1View::CMy1View(): CMy1View::CMy1View() { // TODO: add construction code here for(int i=1;i<=heng;i++) { for(int j=1;j<=shu;j++)http://www.16sheji8.cn/ fange[j][i]=0; fange[0][i]=9; fange[shu+1][i]=9; } for(int k=0;k<shu+2;k++) { fange[k][0]=9; fange[k][heng+1]=9; } score=0; bfange.LoadBitmap(IDB_fange); bfange.GetBitmap(&bmfange); bbeijing.LoadBitmap(IDB_beijing); bbeijing.GetBitmap(&bmbeijing); } 5,在类CMy1View中修改函数CMy1View::OnDraw(CDC* pDC): void CMy1View::OnDraw(CDC* pDC) { CMy1Doc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for native data here CDC mdc; mdc.CreateCompatibleDC(NULL); mdc.SelectObject(&bbeijing); pDC->BitBlt(0,0,bmbeijing.bmWidth,bmbeijing.bmHeight,&mdc,0,0,SRCCOPY); CFont font; font.CreateFont(40,0,0,0,FW_NORMAL,FALSE,FALSE,0,GB2312_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH|FF_DONTCARE,"华文行楷"); CFont *pOldFont=pDC->SelectObject(&font); pDC->SetBkMode(TRANSPARENT); pDC->SetTextColor(RGB(255,0,0)); CString str; str.Format("%d",score); pDC->TextOut((heng+4)*size/2,(shu+2)*size+size/2,str); pDC->SelectObject(pOldFont); mdc.SelectObject(&bfange); for(int j=0;j<shu+2;j++) for(int i=0;i<heng+2;i++)http://www.16sheji8.cn/ { if(fange[j][i]!=0&&fange[j][i]!=9) { pDC->BitBlt((i+1)*size,(shu-j+2)*size,size,size,&mdc,(fange[j][i]<9?(fange[j][i]-1):(fange[j][i]-11))*size,0,SRCCOPY); }
全套毕业设计论文现成成品资料请咨询微信号:biyezuopin QQ:2922748026
返回首页
如转载请注明来源于www.biyezuopin.vip
|