程序设计综合实践报告
信息科学与工程学院
2015年12月20日
目录
1 .概述. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1
1 .1关卡设置. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1
1 /23
1 .2敌机设置. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1
1 .3战机设置. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1
1 .4游戏设置. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1
2.相关技术. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2
2.1 Windows定时器技术. . . . . . . . . . . . . . . . . . . . . . . . . . . .2
2.2双缓冲技术. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2
2.3获取矩形区域. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2
3. 总体设计与详细设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2
3.1系统模块划分. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2
3.2主要功能模块. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3
4.编码实现. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4
4.1初始准备. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4
4.2战机对象. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6
4.3敌机对象. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7
4.4道具对象. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9
4.5主要内容. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10
4.6窗口显示信息. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17
5.实训中遇到的主要问题及解决方法. . . . . . . . . . . . . . . . . . . . .20
5.1产生中断及解决方案. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20
5.2 图片闪烁问题及解决方案. . . . . . . . . . . . . . . . . . . . . . . . .20
6.实训体会. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20
2/23
1.概述
项目飞机大战
主要功能有以下几点
1.1关卡设置
本次飞机大战游戏中共设置了四个关卡 第一关的难度设置较低 仅有敌机对其进行攻击第二关在原有的基础上增加一些补血的小道具 当积分达到一定的时候便会出现该道具 并且敌机出现的频率也比第一关高第三关在第二关的基础上新出现了小boss并增加了其他的道具第四关在第三关的基础上再新出现大boss 当积分达到要求以及大boss被消灭后通关成功。
1.2敌机设置
小敌机随机出现 炮弹也随机发射 当小敌机与战机相撞或被战机的子弹击中时 小敌机消失。当达到一定积分时小 boss出现并随机发射出与小敌机一样的炮弹但是炮弹分
三个方向发射出。当小boss被战机的子弹击中或与战机相撞时失去 5滴血。当到达四关并且积分足够多时出现大boss 同小boss一样当大boss与战机相撞或被战机子弹击中时失去1滴血。 除此之外小boss和大boss上方都有血条显示当血条消失时意味着生命消失大boss和小boss消失。小boss会在屏幕上随机出现和走动出了屏幕后会在屏幕的任意地方再随机出现直至血量为0消失。大boss则在屏幕中随机走动不出屏幕直至血量为0消失。
1.3战机设置
战机初始有五条生命每条命的血量为50所获得的积分以及其生命值、血条都在窗口的左上角显示。在第一、二关时按空格键战机会出现两个向上发射的炮弹到第三、 四关的时候按空格键战机会发射三个不同方向的炮弹。战机吃到药瓶道具时血量会增加 20但不可以超过50吃到闪电道具时便可放大招放大招的次数为 15。当战机被敌方的炮弹击中或与敌方相撞时血量减少减少为0时生命值减1 直至生命值为0。
1.4游戏设置
进入游戏时会有背景音乐窗口左上角显示战机所得积分及其生命值。根据积分情况进入不同的关卡。游戏通关时屏幕清空 并显示通关成功按Y可重新开始游戏。 当战机的血量以及生命值为0时游戏失败屏幕清空并显示游戏结束按 Y即可重新开始游戏。
1 /23
2.相关技术
2.1 Windows定时器技术
Windows定时器是一种输入设备 它周期性地在每经过一个指定的时间间隔后就通知应用程序一次。程序将时间间隔告诉windows 然后windows给你的程序发送周期性发生的WM_YI M E消息以表示时间到了。本程序在OnCreate()函数中使用了编号为1的定时器控制了每30毫秒刷新一次。
2.2双缓冲技术
在内存中创建一个与屏幕绘图区域一致的对象 先将图形绘制到内存这个对象上 再一次性将这个对象上的图形拷贝到屏幕上 这样即可解决图片闪烁问题。本程序在绘制滚动背景以及飞机敌机等中用到了该技术。
2.3获取矩形区域
用CRect定义一个对象 利用这个对象得到要用到的矩形区域 用I nte rsect Rect函数来判断两个源矩形是不是有重合的部分。
3. 总体设计与详细设计
3.1系统模块划分飞机大战游戏主要模块可以说是有几个重要的类组成的。 首先是老师给出的CGameObject类 以及在其派生下的Bomb,Bal l ,Enemy,MyPlane,Explosion,AddBlood等等此处不一一列举。另外还有CObject派生的BackGround类。
如下图
2/23
CObjert
Class
CBackGrOudd 苇pubpgbl ic CGam^Objtct
□1S5■+CObjKt dass
TCObject
publ ic publ ic publ icCBal ldw CAddBomb /""I CBomb CBoofl i l lS CBornb2 CEnemy
pu
CAddBlood CBMI CMyPhne CLittleBo»馬das CExploi ion
Chs CIB55 ■KGimeObjett Class
^CGamtObject ■+CGameOb'ec ■frCGameObject -f'CG&meCljjectt
主要功能是在飞机大战 View类中, On Timer函数中实现将各个类调用随机产生敌
3.2主要功能模块
机子弹的输出爆炸的实现等等。它的实现图可以如下实现:
本程序所包含的功能和类模块:
3/23
4.编码实现
4.1初始准备
4/23
5/23
4.2战机对象
6/23
4.3敌机对象
7/23
傲游主机怎么样?傲游主机是一家成立于2010年的老牌国外VPS服务商,在澳大利亚及美国均注册公司,是由在澳洲留学的害羞哥、主机论坛知名版主组长等大佬创建,拥有多家海外直连线路机房资源,提供基于VPS主机和独立服务器租用等,其中VPS基于KVM或者XEN架构,可选机房包括中国香港、美国洛杉矶、韩国、日本、德国、荷兰等,均为CN2或者国内直连优秀线路。傲游主机提供8折优惠码:haixiuge,适用于全...
A400互联是一家成立于2020年的商家,主要推行洛杉矶服务器采用kvm架构,线路优质,延迟低,稳定性高!全场产品对标腾讯云轻量,服务器线路有有美国洛杉矶cn2_gia、香港cn2+cmi,目前推行的vps服务器均为精心挑选的优质线路机房,A400互联推出了夏季优惠洛杉矶5折、香港7折促销活动,质量可靠,价格实惠!二:优惠码洛杉矶五折优惠码:20210620香港cn2七折优惠码:0710三、优惠方...
无忧云怎么样?无忧云,无忧云是一家成立于2017年的老牌商家旗下的服务器销售品牌,现由深圳市云上无忧网络科技有限公司运营,是正规持证IDC/ISP/IRCS商家,主要销售国内、中国香港、国外服务器产品,线路有腾讯云国外线路、自营香港CN2线路等,都是中国大陆直连线路,非常适合免备案建站业务需求和各种负载较高的项目,同时国内服务器也有多个BGP以及高防节点。一、无忧云官网点击此处进入无忧云官方网站二...