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

课程设计报告—俄罗斯方块MFC.doc

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
南京理工大学VC++课程设计报告 PAGE PAGE 3 南京理工大学VC++课程设计报告 课 程: VC++课程设计 系 别: 计算机科学与工程学院 班 级: 91210xx 学 号: 91210xx 姓 名: xxx 选题1名称: 俄罗斯方块(MFC版) 选题1难易级别: 选题2名称: 选题2难易级别: 自报成绩: A 起止时间: 9月3—9月22 指导教师: 严悍 2013年 9 月 目 录 1 课题目标 利用c++和mfc编写一个俄罗斯方块游戏,实现游戏在一个游戏窗口中显示,实现游戏等级的设定、背景音乐的播放、烟花效果、快捷键的使用和玩家对方块的各种操作等功能。 2 程序具体实现原理 2.1 总体方案 首先应用mfc来绘制游戏的界面,然后把游戏的核心函数和代码封装在一个类中。在这个类中实现方块的绘制,方块的移动、翻转、消行等功能。用不同的消息响应函数来响应玩家的各种输入。为不同的资源定义不同的类来管理。最后在主对话框类中调用相应的函数,来实现游戏在对话框界面内的运行。 2.1.1开发平台 Windows 7、VC++ 6.0、Photoshop cs6 2.1.2基本原理 首先,打开游戏,进行游戏初始化。显示游戏的开始动画,播放背景音乐,背景音乐一直播放到窗口关闭。然后进入游戏的开始菜单界面,界面中有三个按钮,玩家可以根据自己的意愿选择按下按钮。当按下操作按钮时,显示操作说明。当按下设置按钮时,显示设置对话框,玩家可以选择游戏难度和是否显示烟花效果。当按下开始按钮,绘制游戏背景,边框以及随机产生方块。然后判断方块是否可以下落,若不可以则继续判断:是否可以消行,若是则消行加分,然后判断加分多少,并据此确定是否显示烟花;接着判断总分的多少,确定是否分数足够升级。若不能消行,则显示“Game over”。若可以下落,则扫描玩家的按键,根据不同的按键执行不同的操作:当玩家按Esc键时,退出游戏,返回开始菜单界面。当玩家按向上键时,首先判断是否可以变形,若可以则方块在下落的同时顺时针旋转;若不可以则方块继续下落而不旋转。当玩家按向下键时,则方块直接下落到碰到底端或其他的方块。当玩家按向左向右键时,首先判断是否可以移位,若可以则方块在下落的同时向左移或向右移;若不可以则继续垂直下落。按键操作实现后,然后返回到判断是否可以下落处重复操作。在游戏的同时可以判断玩家是否按下快捷键:F2、F3、F4显示不同程度的烟花效果;F12则使方块下落速度加快,9级未满级。 流程图如下 : 俄罗斯方块MFC版流程图 能否移位 能否移位 Esc 左 右 下 上 左右移位 加速下落 能否变形 变形 俄罗斯方块 进入菜单,进行选择 操作 设置 显示操作 显示设置 开始 刷新界面,随机产生方块 方块下落,扫描按键 扫描按键 是否可下落 是否按下按键 是否可以消行 消行,计分 游戏结束 是 是 否 是 否 是 是 2.2 程序各个功能说明 2.2.1 程序结构 由于我的程序是使用mfc写的,并且是基于对话框的应用程序,所以会自动生成CAboutDlg类,CSquareM1Dlg类以及CSquareM1App类。然后我又为游戏添加了两个对话框,分别是操作说明对话框和设置对话框,并且分别将它们与CDlgHelp类以及CDlgSet类相关联。然后我设计了GAMEBOX类,用来包含游戏中具体操作的函数,例如:变换,移动,产生方块,判断是否能移动等操作。我又添加了MYBITMAP类、MYBUTTON类来管理游戏中的位图,按钮以及对他们的操作。并且设置了MYCLOCK类,来实现游戏中的时钟处理。 GAMEBOX类: 类中函数有: public: GAMEBOX(); ~GAMEBOX(); void Show(); //显示图片 int Check(); //时钟处理 void MouseMove(int x,int y); //鼠标移动处理 int LButtonUp(in

文档评论(0)

南江月 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档