11 C++课程设计_太空战机.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文档。上传文档
查看更多
11C课程设计_太空战机

FunCode程序设计实验教材系列 C++面向对象课程设计 实验指南 上海锐格软件有限公司 课程设计三 太空战机 一、游戏介绍 太空战机是玩家用键盘控制战机移动并发射子弹,消灭敌方的战机。敌方战机从右到左移动,同时上下浮动。 二、实验目的 综合应用C++语言和面向对象的知识开发一款小游戏。 三、实验内容 在外星球上,玩家通过键盘WSAD键控制己方战机,消灭外星球的邪恶战机。 要求如下: 游戏运行时,初始界面如下图。 按下空格键,游戏开始,玩家通过WSAD键控制己方战机移动;己方战机不能超出世界边界。 玩家战机每隔0.3秒发射一发子弹; 添加敌方战机,每隔5秒创建一架敌方战机; 敌方战机每隔3秒发射一发子弹; 记录游戏的最高分。 游戏初始界面 四、实验指南 实验一 游戏开始和控制我方战机移动 【实验内容】 按空格键,游戏开始,“空格开始”字样消失。 创建CMyFighter类,并创建对象实例玩家控制的战机。 战机碰到世界边界时,静止。 游戏开始后,通过键盘WSAD键控制战机移动。 战机左右运动的速度为30。上下运动的速度为15。 在游戏中显示游戏的当前积分和最高积分。 【实验思路】 按空格键开始游戏,属于键盘按下事件,我们在dOnKeyDown函数中编写代码。 在游戏中,我们运用面向对象的知识将战机看成一个对象,并为这个对象添加一个类叫CMyFighter。类具有属性和方法,要控制战机能在各个方向上自由的游动,我们为CMyFighter类添加上下左右四个方向的速度,并且我们为战机添加OnMove方法控制战机的游动状态。 【实验指导】 CGameMain中定义类局部变量: CSprite * m_pBeginSprite ; //GameBegin就是我们“空格开始”精灵。 CTextSprite * m_pCurScoreText;//显示当前积分 CTextSprite * m_pMaxScoreText;// 显示最高分 在CGameMain类的构造函数中添加代码,对变量进行初始化。 m_pBeginSprite = new CSprite(GameBegin); m_pCurScoreText = new CTextSprite(CurScoreText); m_pMaxScoreText = new CTextSprite(MaxScoreText); 在OnKeyDown中,当按下的按键为空格键并且此时的游戏状态为0,则设置游戏的状态为1。0表示此时游戏为等待状态,未开始。1表示游戏进行初始化,初始化后会进入游戏运行状态。 // 按下空格,游戏开始 if( KEY_SPACE == iKey 0 == GetGameState() ) { SetGameState( 1 ); } 在游戏初始化函数GameInit中隐藏 按空格开始游戏 这个提示图片。 m_pBeginSprite-SetSpriteVisible( false ); 通过类向导创建CMyFighter类,其继承于CSprite类 第二步、在“New Class”对话框中输入类名和父类名。 第三步、点击“更改”按钮,在新对话框中修改CMyFighter类的头文件和cpp文件的路径。将头文件保存到项目文件夹的\SourceCode\Header文件夹中,将cpp文件保存到项目文件夹下的\SourceCode\Src文件夹中。 这里需要特别注意的是创建文件路径的问题,所有的.h头文件应该在项目文件夹\SourceCode\Header中,所有的.cpp源文件应该放在项目文件夹下的\SourceCode\Src文件夹中。 为CMyFighter类添加个成员CMyFighter的父类是CSprite类(具体声明查看CommonClass.h),构造函数为CSprite( const char *szName )。所以通过上边方法自动生成的类,如果系统自动生成构造函数CMyFighter (void), 删除掉它以及在CMyFighter.cpp中自动生成的对构造函数实现的代码: CMyFighter:: CMyFighter (void) { } 再为CMyFighter类添加CMyFighter (const char* szName)。 CMyFighter:: CMyFighter (const char* szName):CSprite(szName) //对构造函数进行实现 { } 子类对象创建时,要先调用父类的构造函数完成父类部分的构造。如果父类没有默认构造函数,子类的构造函数必须显示调用父类的构造函数。CMyFighter构造函数调用CSprite类构造函数,并将参数szName

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档