电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

C++语言课程设计一拍飞虫

15页
  • 卖家[上传人]:夏**
  • 文档编号:473453774
  • 上传时间:2023-01-02
  • 文档格式:DOC
  • 文档大小:1.94MB
  • / 15 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、C+语言课程设计一拍飞虫一、实验内容玩家通过控制拍子拍打飞虫获取分数。要求如下:1、 游戏的初始界面如图一,单击空格键即可进入游戏。进入游戏后的界面如图二。左上角有两个记录游戏数据标示。上面一个是记录游戏剩余时间,下面一个是记录本局的游戏分数。下面也有五个记录游戏数据的标示,从左到右分别是记录各局游戏分数分数最高的前五个。图 一图 二2、 移动鼠标可以控制拍子的移动,单击鼠标左键可以控制拍子拍打动作。3、 游戏开始的时候,系统随机生成12个虫子,其中大虫子5个,小虫子7个,每打死一个大虫子获得1分,打死一个小虫子获得2分。游戏的分数会实时的显示在左上角。二、实验指南实验一 开始实验【实验任务】步骤一、打开FunCode,创建一个的C+语言项目;步骤二、导入KillFeiChong模板。【实验思路】按实验指导完成。1、 打开FunCode,点击“项目”菜单,选择“创建C+工程”注意:工程名名称要求字母开头,只能包含字母和数字,且名字中间不能有空格。2、 点击菜单“项目”中的“导入地图模块”,如图一。跳出一个对话框,选中“KillFeiChong”模板,点击“导入到工程”按钮,如图二。 图

      2、 一 图 二3、 导入成功后的,界面如下图所示:实验二 移动拍子【实验内容】步骤一、单击空格键开始游戏步骤二、初始化游戏数据步骤三、移动拍子【实验思路】获取系统响应键盘按下的消息函数的数据,如果是空格键则进入游戏界面,初始化游戏数据。同时获取鼠标的坐标,设置为拍子精灵的坐标。【实验指导】1、 进入LessonX.h中,添加如下的成员变量声明:CSprite*m_pPaizi;/拍子精灵CSprite*m_pKaishi;/空格开始精灵floatm_fGameTime;/ 本局游戏剩余时间CTextSprite*m_pTime; /显示时间文字编辑精灵CTextSprite*m_pScore;/显示分数文件编辑精灵floatm_fPosX;/拍子精灵的x坐标floatm_fPosY;/拍子精灵的y坐标intm_iGameScore;/ 本局游戏当前积分值2、 进入LessonX.cpp中添加以上变量的初始化代码:1) 在构造函数中添加如下代码:m_fGameTime=0.f;m_iGameScore=0;m_fPosX=0.f;m_fPosY=0.f;m_pKaishi=new CSpr

      3、ite(kaishi);m_pPaizi=new CSprite(paizi);m_pTime=new CTextSprite(Time);m_pScore=new CTextSprite(Score);2) 在GameInit中获取拍子的初始位置:m_fPosX=m_pPaizi-GetSpritePositionX();m_fPosY=m_pPaizi-GetSpritePositionY();3、 要实现单击空格键进入游戏,就需要添加一个自定义函数处理系统键盘按下事件中得到的数据。1) 进入LessonX.h中添加自定义函数OnKeyDown的声明:voidOnKeyDown( const int iKey, const int bAltPress, const int bShiftPress, const int bCtrlPress );2) 进入LessonX.cpp中添加该函数的定义代码:void CGameMain:OnKeyDown( const int iKey, const int bAltPress, const int bShiftPress, const i

      4、nt bCtrlPress )3) 首先要判断得到的键盘键值是不是空格键,以及游戏的状态是不是等待开始状态,是的话则设置游戏状态为初始化,更新分数显示和游戏剩余时间,隐藏空格开始精灵和鼠标。在上面的函数定义里面添加如下的代码:if( KEY_SPACE = iKey & 0 = m_iGameState )m_iGameState =1;m_iGameScore=0;m_fGameTime=5.f; /游戏总共的时间/ 更新当前游戏积分显示(清零上一局积分显示值)m_pScore-SetTextValue(m_iGameScore);/ 更新当前游戏剩余时间显示, 由于游戏刚开始,所以直接设置为g_fMaxGameTimem_pTime-SetTextValue(m_fGameTime);/ 隐藏 按空格开始游戏 这个提示图片m_pKaishi-SetSpriteVisible(false);/ 隐藏鼠标CSystem:ShowCursor(false);4) 最后在Main.cpp中的OnKeyDown函数里面添加对我们自定义函数的调用:g_GameMain.OnKeyDown(iK

      5、ey,bAltPress,bShiftPress,bCtrlPress);4、 游戏初始化之后,每次系统刷新界面的时候对游戏总共的时间m_fGameTime减去一个fDeltaTime,这样整体效果是游戏时间在不断的减少,判断游戏时间如果小于0,则游戏结束,回到空格开始界面。如果不是,则在地图的左上角消失当前剩余的时间。在GameRun函数里面添加如下代码:1) 判断游戏时间是否大于0,是的话,显示游戏剩余时间。更改LessonX.cpp中的GameMainLoop ( floatfDeltaTime )函数,将函数中case 2:if( true )GameRun( fDeltaTime );elseSetGameState(0);GameEnd();改为:case 2: if(m_fGameTime 0)GameRun( fDeltaTime );elseSetGameState(0);GameEnd(); 这样,运行时,只有当剩余时间大于0时,才会运行GameRun()函数。2) 游戏总时间减少并把剩余时间实时的显示在游戏中,在GameRun()中添加代码: m_fGameTim

      6、e -= fDeltaTime;m_pTime-SetTextValue(int)m_fGameTime);3) 如果游戏时间小于等于0,则设置游戏状态为游戏结束,在GameEnd()函数中添加如下代码:m_iGameState = 0;m_pKaishi-SetSpriteVisible(true);m_fGameTime = 0.f;m_pScore-SetTextValue(int)m_fGameTime);CSystem:ShowCursor(true);m_pPaizi-SetSpritePosition(m_fPosX,m_fPosY);5、 要使拍子随鼠标移动,则要通过系统获取到鼠标的坐标位置,然后用SetSpritePosition设置拍子精灵的位置即可。1) 进入LessonX.h中添加我们的自定义函数声明:voidOnMouseMove( const float fMouseX, const float fMouseY );2) 进入LessonX.cpp中添加该函数的定义:void CGameMain:OnMouseMove( const float fMouse

      7、X, const float fMouseY )3) 如果当前游戏状态是初始化或者正在进行中,则将鼠标位置赋给拍子,在上面的函数中添加如下代码:if(m_iGameState=1|m_iGameState=2)m_pPaizi-SetSpritePosition(fMouseX, fMouseY);4) 在Main.cpp中的OnMouseMove函数中添加对我们自定义函数的调用:g_GameMain.OnMouseMove(fMouseX,fMouseY);实验三 拍子模拟拍打动作【实验内容】步骤一、拍子模拟拍打飞虫的动作【实验思路】在系统鼠标单击函数里面处理拍子拍打动作。设置拍子角度改变,同时设置一个动作时间,在游戏过程中不断减少该时间的值,如果改值为0,则恢复拍子的角度,这样整体的效果就是拍打的动作。【实验指导】1、 进入LessonX.h中添加下面的成员变量声明:floatm_fRotateTime;/ 拍子拍下后距离复位还差多少时间floatm_fOldRotation;/ 拍子的初始角度2、 在LessonX.cpp的构造函数中初始化以上的成员变量:m_fRotateTim

      8、e=0.f;m_fOldRotation=0.f;3、 获取拍子的初始角度并保存,在GameInit中添加下面一行代码:m_fOldRotation=m_pPaizi-GetSpriteRotation();4、 添加一个自定义函数来处理拍子角度改变的动作。1) 在LessonX.h中添加自定义函数的声明:voidOnMouseClick( const int iMouseType, const float fMouseX, const float fMouseY );2) 在LessonX.cpp中添加该函数的定义:void CGameMain:OnMouseClick( const int iMouseType, const float fMouseX, const float fMouseY )3) 判断游戏的状态是否是初始化或者进行中,是的话则改变拍子的角度,设置一个拍下的动作时间。在上面的函数定义中添加以下代码:if(m_iGameState=1|m_iGameState=2)m_pPaizi-SetSpriteRotation(m_fOldRotation - 10);m_fRotateTime=0.2f;4) 在Main.cpp中的OnMouseClick函数中添加对自定义函数的调用:g_GameMain.OnMouseClick(iMouseType,fMouseX,fMouseY);5、 在游戏中判断拍子拍下后,动作时间是否达到了0,是的话恢复拍子的角度。在GameRun中添加下面的代码:if(m_fRotateTime 0)m_fRotateTime -= fDeltaTime;if(m_fRotateTime = 0)

      《C++语言课程设计一拍飞虫》由会员夏**分享,可在线阅读,更多相关《C++语言课程设计一拍飞虫》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    监控施工 信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.