飞机大战游戏设计与实现_第1页
飞机大战游戏设计与实现_第2页
飞机大战游戏设计与实现_第3页
飞机大战游戏设计与实现_第4页
飞机大战游戏设计与实现_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

程序设计综合实践报告名字学生身份证班级项目名飞机战斗游戏的设计与实现实习地点计算机实验室实习时间从2015年12月9日至2015年12月19日实践结果讲师签名信息科学与工程学院2015年12月20日内容1.概述11.1水平设置11.2设置敌机11.3飞机设置11.4游戏设置12.相关技术22.1视窗计时器技术22.2双缓冲技术22.3获得矩形区域23.总体设计和详细设计23.1系统模块分区23.2主要功能模块34.编码实现44.1初始准备44.2战斗机目标64.3敌人目标74.4道具物品94.5主要内容104.6窗口显示信息185.实训中遇到的主要问题及解决方法205.1中断的产生和解决方案205.2照片闪烁问题及解决方案206.培训经历2031.概观项目:飞机战主要功能如下:1.1水平设置这款战机战争游戏一共设置了四个关卡,第一关的难度设置比较低,只有敌机来攻击它;第二级是在原来的基础上增加一些补血道具,当分数达到一定水平,敌机出现的频率高于第一级的时候就会出现。在第二层的基础上,一个新的小老板出现在第三层,其他的道具也加入了。在第三层的基础上,第四层出现了一个新的大老板。当分数达到要求,大老板被淘汰,通关成功。1.2敌机的设置小型敌机随机出现,炮弹随机发射。当小型敌机与战斗机的子弹相撞或被击中时,小型敌机就会消失。当达到某个分数时,小老板出现并随机发射与小型敌机相同的炮弹,但炮弹是朝三个方向发射的。当小老板被战斗机的子弹击中或与战斗机相撞时,他流了5滴血。当你达到第4级并获得足够的分数时,就会有一个大老板,就像一个小老板一样,当大老板与一架战斗机相撞或被战斗机子弹击中时,就会失去一滴血。此外,在小老板和大老板的上方还有血条。当血条消失时,生命也消失了,大老板和小老板也消失了。小老板会随机出现在屏幕上,走出屏幕后会随机出现在屏幕的任何地方,直到血量为零并消失。大老板不能随意离开屏幕,直到血容量为零。1.3飞机设置战斗机最初有五条生命,每条生命的血容量为50。获得的点数、生命值和血条显示在窗口的左上角。在第一层和第二层,按空格键发射两枚向上的炮弹,在第三层和第四层,按空格键发射三个不同方向的炮弹。当一个战士吃了一个药瓶道具,他的生命值会增加20,但是不能超过50。当你吃闪电道具时,你可以放大笔画,笔画数是15。当战士被敌人炮弹击中或与敌人相撞时,血容量减少。当血容量减少到0时,生命值减少1,直到生命值为0。1.4游戏设置当进入游戏时,会有背景音乐,窗口的左上角会显示玩家的分数和生命值。根据点数输入不同的等级。当游戏通过海关时,屏幕将被清空,并显示游戏已经成功完成。按Y键重新开始游戏。当战士的生命值和生命值为0时,游戏失败,屏幕清空并显示游戏结束。按Y键重新开始游戏。2.相关技术2.1视窗定时器技术窗口计时器是一种输入设备,它在指定的时间间隔过后定期通知应用程序一次。程序会告诉窗口时间间隔,然后窗口会定期向您的程序发送WM_YIMER消息,以指示时间已到。该程序使用OnCreate()函数中编号为1的计时器来控制每30毫秒刷新一次。2.2双缓冲技术在内存中创建一个与屏幕绘图区域一致的对象,先在内存中的对象上绘制图形,然后将该对象上的图形一次复制到屏幕上,以解决画面闪烁的问题。这个程序使用这种技术来绘制滚动背景、飞机、敌机等九月克里特岛是云娥吗,吴亚玲丁亚玲丁亚玲丁亚玲丁亚玲,九月相交矩形(交叉直线)范思哲,范思哲,范思哲,范思哲。3.-什么3.1安其林安其林不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不.范思哲范思哲cgameobject(cgameobject)1860年,云娥炸弹,球,敌人我的飞机,爆炸,血液朱建强?朱建强。你好科宾德徐若英(音译)背景(背景)1860年年。你好:3.2张伯伦医生张伯伦医生视图(查看)1861年,ontimer云娥与云娥1,陆恭贺陆恭贺,吴亚玲吴亚玲,-你好-你好,阿云哥阿云哥阿云哥阿云哥阿云哥阿云哥阿云哥阿云哥阿云哥阿云哥阿云哥阿云哥阿云哥阿云哥阿云哥阿云哥阿云哥阿云哥阿云哥阿云哥阿云哥阿云哥阿云哥阿云哥。是云娥吗:朱庇特朱庇特:阿云娥韩世忠(音译)哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟范希芬(签名)吴登盛(音译)我爱你吴亚玲很高兴见到你我爱你云娥吴小云鲁仲尼鲁仲尼鲁仲尼(CGameObject)阿力伯阿力伯阿力伯阿力伯阿力伯阿力伯阿力伯阿力伯阿力伯阿力伯阿力伯阿力伯阿力伯阿力伯阿力伯阿力伯(我的飞机)阿力斯阿力斯阿力斯阿力斯阿力斯阿力斯阿力斯阿力斯阿力斯阿力斯阿力斯阿力斯阿力斯阿力斯阿力斯阿力斯阿力(敌人、小老板、老板)是云娥是阿忠(炸弹,炸弹2)云娥杨茂清(音译()球,球)云娥杨茂清(音译()爆炸)阿云娥贺盛瑞(音译)(添加血液,添加炸弹)4.云娥一4.1哎哎哎哎韩世忠(音译)范希芬(签名)唉哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟吴登盛(音译)我爱你吴亚玲很高兴见到你我爱你云娥“*”什么事cflyfightview 3: cflyfightview()/全部3330奥布里翁瓦里翁瓦里翁瓦里翁瓦里翁瓦里翁瓦里翁瓦里翁瓦里翁瓦里翁瓦里翁瓦里翁瓦里翁瓦里翁瓦里翁瓦里翁瓦里翁瓦里翁韦罗旗标=0。旗标2=0;级别=1:bossang=100cflyfightview 3: cflyfightview()bool cflyfightview :预构建窗口(createstruct cs)/全部3330奥布里翁/创建技巧cs霍阿吉阿吉阿吉阿吉阿吉阿吉阿吉阿吉阿吉阿吉阿吉阿吉阿吉阿吉阿吉阿吉阿吉阿吉阿吉阿吉阿吉阿吉阿吉阿吉阿吉返回cview :预构建窗口(cs);/cflyfightview(cflyfightview)陈力宏请参阅cflyfightview 3: ondrawcflyfightdoc * pdoc=get document();断言有效(pdoc);如果(!pDoc)返回;/全部3330-你好-你好/cflyfightview(cflyfightview)朝比奈bool cflyfightview 3: on preparing(cprininfo * pinfo)/黄公子返回兴奋剂(pinfo);请参阅cflyfightview 3: on bluring(CDC */PDC */cprininfo */pinfo */)/全部3330你看,你看,你看,你看,你看,你看,你看,你看,你看,你看,你看,你看,你看,你看,你看,你看,你看,你看,你看,你看,你看,你看,你看,你看,你看,你看,你看,你看,你看,你看,你看,你看,你看请参阅cflyfightview 3: onenote(CDC */PDC */cprininfo */pinfo */)/全部3330吴经熊和吴经熊/cflyfightview(cflyfightview)阿力#ifdef _DEBUG参见cflyfightview 3:断言有效()常量cvview 3:断言valid();参见cflyfightview 3: dump(cdumpcontext DC)constcview :转储(DC);cflyfightdoc * cflyfightview 3: get document()const/范登韦恩佐范登韦恩佐断言(m _ pddocument-iskiindof)运行时_类(cflyfightdoc);return(cflyfightdoc *)m _ pddocument;# endif/_ debug/cflyfightview(cflyfightview)郑国荣(音译)int cflyfightview 3: oncreate(lpcreatestrut lpcreatestrut)if(cvview 3: on create(lpcreatestrut)=1)返回-1;/全部3330你是谁/亚文阿文阿文阿文阿文阿文阿文阿文阿文阿文阿文阿文阿文阿文阿文阿文阿文阿文阿文阿文阿文阿文播放声音(LPCTSTR)IDR_WAVE1、AfxGetInstanceHandle()、snd _ resource | snd _ async | snd _ loop);设置定时器(1,30,0);cmyplane 3:加载图像();cenemy 3:加载图像();ce爆炸3:加载图像();cbomb 3:加载图像();cball 3:加载图像();cadd od 3:加载图像();caddbomb 3:加载图像();cbomb 233:加载图像();clittebss 3:加载图像();cboss 3:加载图像();cbossball 3:加载图像();返回0;请参阅cflyfightview 3: monkey yes(uint nchar、uint recept、uint nflags)/全部3330-你好-你好/黄公子如果(nCHAR=VK _向下| | VK _向上)我的车道setvermotion .如果(nCHAR=VK _右| | VK _左)我的车道sethormotion(0);cvview 3: monkey yey(nchar、recept、nfiggs);朱文谦(音译)4.2阿力伯阿力伯阿力伯阿力伯阿力伯阿力伯阿力伯阿力伯阿力伯阿力伯阿力伯阿力伯阿力伯阿力伯阿力伯韩世忠(音译)阿力伯阿力伯阿力伯阿力伯阿力伯阿力伯阿力伯阿力伯阿力伯阿力伯阿力伯阿力伯阿力伯阿力伯阿力伯唉哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟阿力伯阿力伯阿力伯阿力伯阿力伯阿力伯阿力伯阿力伯阿力伯阿力伯阿力伯阿力伯阿力伯阿力伯阿力伯我爱你阿琳阿琳阿琳阿琳阿琳阿琳阿琳阿琳阿琳阿琳阿琳阿琳阿琳阿琳阿琳阿琳阿琳阿琳阿琳阿琳阿琳阿琳阿琳“*”什么事短键=获取键状态(fk _ right):短键1=获取键状态(fk _ left):快捷键2=获取按键状态(fk _ up):快捷键3=GetKeyState(VK向下):if (key0x80)!=0)我的飞机设置运动(1);否则如果(key10x80)!=0)我的飞机。设置运动(-1);否则如果(key20x80)!=0)我的飞机。设置运动(-1);否则如果(key30x80)!=0)我的飞机SetVermotion(1);void CflyFightView3360: OnKeyUp(UINT NChar,UINT nRepCnt,UINT nFlags)/TODO:在此添加消息处理程序代码和/或调用默认值如果(nCHAR=VK _向下| | VK _向上)我的飞机SetVermotion(0);如果(nCHAR=VK _右| | VK _左)我的飞机。设置运动(0);CView:OnKeyUp(nChar、nRepCnt、nFlags);void CflyFightView3360: OnKeyDown(UINT NChar,UINT nRepCnt,UINT nFlags)/TODO:在此添加消息处理程序代码和/或调用默认值if(nCHAR=VK _空间)如果(我的飞机。解雇()if(flag=0(level=1|level=2)列表炸弹。新的CBomb(我的飞机GetPoint().x 10,我的飞机GetPoint().y 20,0,12);列表炸弹。新的CBomb(我的飞机GetPoint().x 30,我的飞机GetPoint().y 20,0,12);否则如果(标志=0(级别=3 | |级别=4)列表炸弹。新的CBomb(我的飞机GetPoint().x 10,我的飞机GetPo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论