专业课程设计坦克大战.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
课程设计一 坦克大战 一、游戏介绍 相信大部分同学全部玩过或看过“坦克大战”这款经典游戏。现在,就由我们自己动手来开发它。只要大家俱备了C++语言和面向对象基础知识,然后根据试验指南指导一步一步进行下去,相信我们每个同学全部能把这款经典游戏做出来。 二、试验目标 综合利用C++及其面向对象知识开发一款小游戏。 三、试验内容 在一个战场上,玩家控制坦克,消亡敌方坦克,并预防敌方坦克摧毁我方基地。游戏具体要求以下: 游戏有一个初始页面,以下图。屏幕上最内部黑色区域为玩家坦克活动区域,左上角坐标为(-26,-22),右下角坐标为(26,22)。当坦克运动到该区域边界时,坦克不能继续前进。 按下任意键开始游戏,玩家控制坦克在战场上穿梭,碰到墙时,不能经过。 敌方坦克自由移动,每隔2秒改变一个方向,每隔3秒发射一发子弹。 敌方坦克每隔5秒出现一辆,从屏幕上方左、中、右三个位置依次出现。 当玩家被消亡或我方基地被摧毁或游戏时间大于30秒时候,游戏结束。 游戏开始前 进入游戏 四、游戏整体框架 试验指南 试验准备 打开FunCode,创建一个新C++项目。注意:项目名称必需为英文和数字,且不能有空格。 点击“项目”→“导入地图模板”,从对话框中选择名称为TankWar模板导入。导入成功后,界面以下: 试验一 游戏开始 【试验内容】 设置游戏标题 按空格键,提醒图片消失,游戏进入开始状态. 【试验运行结果】 游戏开始前 按下空格键后 【试验思绪】 要处理FunCode中图片,我们需要申明CSprite类型对象来指向对应图片,然后调用精灵类对应函数进行处理。 按下空格键是键盘按下事件,系统调用CSystem::OnKeyDown函数进行响应。该函数中调用CGameMain::OnKeyDown函数。所以我们能够在CGameMain类OnKeyDown函数完成对应代码。 按下键盘后,需要改变游戏状态,游戏从未开始进入开始状态。组员变量m_iGameState用来表示游戏状态。 【试验指导】 C++程序实施入口是主函数。FunCode主函数名称叫WinMain,写在Main.cpp文件中。CSystem::SetWindowTitle是设置程序运行窗口标题函数,修改以下: CSystem::SetWindowTitle(坦克大战); FunCode程序运行时,当发生键盘按下事件,程序首先调用并实施CSystem::OnKeyDown函数,然后由CSystem::OnKeyDown函数调用并实施CGameMain::OnKeyDown函数。所以,键盘按下事件响应代码我们在CGameMain::OnKeyDown函数中编写即可。 我们要处理两个精灵以下图,它们名称分别是splash和start。我们需要创建两个CSprite类对象和这两个精灵绑定。 在CGameMain类中申明两个CSprite*类型,依据面向对象封装性原理,组员变量访问权限应该是private。代码应该写LessonX.h文件中。 CSprite* m_pSplash; CSprite* m_pStart; 在CGameMain类结构函数中,对上面两个指针变量进行初始化。经过调用CSprite结构函数,将精灵和精力对象绑定在一起。 m_pSplash = new CSprite(splash); m_pStart = new CSprite(start); 最终,我们在CGameMain::OnKeyDown函数中处理空格键按下事件。 if( 0 ==GetGameState() ) { if(iKey == KEY_SPACE) { m_iGameState = 1; } } KEY_SPACE是枚举变量KeyCodes组员,表示空格键。KeyCodes定义在CommonClass.h文件中。该枚举变量定义了全部键盘值。注意:必需将m_iGameState值改为1。当GameMainLoop函数再次实施时,依据m_iGameState值调用并实施GameInit函数,游戏进入开始状态。 进入游戏开始状态时,调用CSprite类SetSpriteVisible函数将精灵图片设置为不可见。 在GameInit函数中添加代码: m_pSplash-SetSpriteVisible(false); m_pStart-SetSpriteVisible(false); 程序实施完CGameMain::GameInit函数后,实施CGameMain:: SetGameState(2),将m_iGameState值改为2,游戏进入运行状态。 在CGameMain类析构函数中delete本试验创建指针对象,以释放分配内存。 CGameMain::~CGameMain()

文档评论(0)

173****6081 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档