C++实训报告——飞机大战

合集下载

飞机大战实训报告

飞机大战实训报告

飞机大战实训报告作为一款经典的游戏,《飞机大战》已经深入人心,对于爱好游戏开发的人来说,掌握它的制作方法有助于提升自己的技能和经验。

在我的实训项目中,我选择了制作一款《飞机大战》游戏,下面是我的实训报告。

一、前期准备在开始制作游戏之前,我首先进行了一些前期准备,包括学习游戏开发工具和游戏设计思路的设计。

1.游戏开发工具的选择根据我的经验和需求,我选择了使用Cocos Creator 开发工具,因为它可以提供完整的游戏开发环境,包括UI 设计、动画制作、场景控制等功能,同时支持多平台发布。

2.游戏设计思路的设计在开发游戏之前,我需要对游戏的设计方案进行一定的考量。

我决定将游戏分为三个主要部分:开始场景、游戏场景和结束场景。

在开始场景中,我将为玩家提供游戏规则、操作说明等信息。

游戏场景将包括玩家战机、敌机、敌机攻击、奖励、分数等元素。

结束场景将显示玩家的得分、排名和游戏结束信息。

二、游戏开发1.开始场景开始场景是游戏的首屏,玩家可以在这里了解游戏规则和操作方法。

在这个场景中,我将使用Cocos Creator 的UI 设计功能创建一个开始界面。

在这个界面中,我会提供游戏开始、音乐开关、游戏规则等按钮。

2.游戏场景游戏场景是游戏的核心场景,游戏操作和游戏体验都在这里产生。

在这个场景中,我会使用Cocos Creator 的场景设计功能创建一个游戏场景。

在这个场景中,我将包含玩家战机、敌机、敌机攻击、奖励和分数等元素。

3.结束场景结束场景是游戏的最后一个场景,玩家可以在这里查看自己的得分和排名。

在这个场景中,我将使用Cocos Creator 的UI 设计功能创建一个结束界面。

三、游戏发布当游戏制作完成后,我需要将游戏发布到各个平台上。

对于HTML5 平台,我将使用Cocos Creator 提供的发布功能将游戏发布到浏览器上,对于移动平台,我将使用Cocos Creator 提供的发布功能将游戏发布到移动设备上。

c++实训报告(飞机大战)

c++实训报告(飞机大战)
2. 相关技术
此次实训的飞机大战游戏其中的技术主要就是一些函数、内存释放和双缓冲技术。
2.1 透明贴图函数(技术一的名称)
此次实训中用于贴图的函数: LoadImage(CImageList& imageList,UINT bmpID,COLORREF crMask,int cx,int cy,int nInitial) //此函数主要用于将图片放入图像链表 imageList 中。 img_Bomb.Draw(pDC,0,m_m_ptPos,ILD_TRANSPARENT) // 此 函 数 主 要 是 讲 img_Bomb1 链表中的图像显示在 pDC 这个句柄中。ILD_TRANSPARENT 表示是透明贴图。 其中主要就是 CImageList 图像列表。它是相同大小图像的一个集合,每个集合中均以 0 为 图像的索引序号基数,图像列表通常由大图标或位图构成,其中包含透明位图模式。可以利 用 WINDOWS32 位应用程序接口函数 API 来绘制、建立和删除图像,并能实现增加、删除、替 换和拖动图像等操作。
3
信息科学与工程学院软件实践实训报告
2.3 获取矩形区域函数
CRect rc; //定义 GetClientRect(&rc); // 获 取 其 矩 形 区 域 获 取 结 果 课 为 : rc.Width() // 矩 形 区 域 的 宽 度
rc.Height() //矩形区域的高度 CRect tmpRect; tmpRect.IntersectRect(&bRect,eRect))//判断两个矩形是否有交接
实训报告
飞机大战游戏设计与开发
专业名称:__________ ____________

级:__________________

飞机大战程序设计报告

飞机大战程序设计报告

程序设计综合实践实习报告一、实习题目:飞机大战游戏二、实习时间:2014.9.20-2014.9.30实习地点:J13-132、232三、实习任务:通过项目实战,掌握C++面向对象编程的基础技术和Windows 应用程序的编程方法,能够运用MFC技术及其开发环境进行小项目的开发。

四、小组分工说明:五、实习成绩六、指导教师对实习的评语:指导教师(签章):年月日飞机大战游戏1.实习目的1.1使学生全面了解软件项目实施的过程,理解软件企业对于程序员的基本素质和技术能力要求。

1.2使学生掌握C++及Window程序设计的基本技术,能够运用MFC技术及其开发环境进行小型项目的开发。

1.3重点培养学生的独立创新精神和查阅资料能力,提高其口头和书面的沟通能力。

1.4使学生掌握快速学习新知识、新技术方法,培养良好的分析问题和解决问题的能力1.5重点提高学生的编程能力,使学生建立正确的编程理念,养成规范的编程习惯。

2. 实习计划1、9.20—9.21先建立CGameObject 类,利用继承机制,根据此类进行依次的派生。

2、9.22—9.25再建立派生类:Bomb,Ball,Enemy,MyPlane,Explosion等,并实现各自功能。

3、9.26—9.29在xxView.cpp中的OnTimer中实现背景的设置,对敌机,导弹,敌机子弹,爆炸效果的绘制,以及敌机子弹和战机,导弹和敌机的碰撞检验,并添加爆炸效果4、9.29—9.30最后释放pDC以及定时器3.实习过程3.1 技术准备透明贴图技术绘制透明位图的关键就是创建一个“掩码”位图(mask bitmap),这个“掩码”位图是一个单色位图,它是位图中图像的一个单色剪影。

在详细介绍实现过程之前先介绍下所使用的画图函数以及函数参数所代表的功能;整个绘制过程需要使用到BitBlt()函数。

整个功能的实现过程如下:(1) 创建一张大小与需要绘制图像相同的位图作为“掩码”位图;(2) 将新创建的“掩码”位图存储至掩码位图的设备描述表中;(3) 把位图设备描述表的背景设置成“透明色”,不需要显示的颜色;(4) 复制粘贴位图到“掩码”位图的设备描述表中,这个时候“掩码”位图设备描述表中存放的位图与位图设备描述表中的位图一样;(5) 把需要透明绘制的位图与对话框绘图相应区域的背景进行逻辑异或操作绘制到对话框上;(6) 把“掩码”位图与这个时候对话框相应区域的背景进行逻辑与的操作;(7) 重复步骤5的操作,把需要透明绘制的位图与对话框绘图相应区域的背景进行逻辑异或操作绘制到对话框上;(8) 最后把系统的画笔还给系统,删除使用过的GDIObject,释放非空的指针,最后把新建的设备描述表也删除。

程序设计综合实践 飞机大战 实训报告

程序设计综合实践 飞机大战 实训报告

[在此处键入]实训报告飞机大战游戏设计与开发专业名称:班级:学号:信息科学与工程学院二零一八年七月目录1. 概述 (3)2. 相关技术 (3)2.1 碰撞检测 (3)2.2 COblist链表 (3)2.3 双缓冲技术 (4)2.4 背景滚动 (4)2.5 爆炸动画的实现 (4)2.6定时器的使用 (4)3. 总体设计与详细设计 (4)3.1 系统模块划分 (4)3.2 主要功能模块 (5)4. 编码实现 (7)5. 实训中遇到的主要问题及解决方法 (42)6. 实训体会 (43)1. 概述本次实训任务是以visual studio 2017为环境,利用MFC和C++编写一个飞机大战游戏。

其实现的主要功能为:实现游戏对象的爆炸特效,界面背景切换,文字提示和血条显示功能,奖励机制(血包、护盾、僚机、武器升级),大招和无敌模式等。

通过方向键控制战机移动,空格键发射子弹,击毁敌机可以得分。

游戏中可以按“X”开启或关闭无敌模式。

按“P”可以暂停。

游戏设有能量槽,能量不断积累,超过一半可以按“Z”键使用大招,大招为全屏攻击。

玩家收到攻击血量减少,血量为0游戏结束,显示“Game Over”,可以按“R”复活,继续游戏。

游戏设有关卡机制,每关开始一段时间后出现boss。

击败boss进入下一关。

boss有三种,难度依次增加。

第一种boss发射直线子弹,第二种boss发射散射子弹,第三种boss 两种子弹随机发射。

前三关背景图和boss固定,之后背景图与boss随机生成。

游戏中随机出现四种道具:血包:可以恢复一定的血量。

护盾:一段时间内无敌。

武器升级:升级玩家的武器,共三个等级。

僚机:获得一个僚机。

2. 相关技术2.1 碰撞检测游戏中需要处理一系列的碰撞,在处理碰撞时,可以认为每个对象是与位图大小相同的矩形,用Crect类的GetRect函数获取我方战机的矩形与敌机子弹矩形,然后新建一个矩形并且调用IntersectRect(&bRect,mRect)再用if条件语句判断,若矩形区域重叠不为空,则视为碰撞,在if语句中填写实现碰撞后的功能。

C++课程设计报告【飞机大战】

C++课程设计报告【飞机大战】

C++程序设计A2课程设计报告课程名称C++程序设计A2课题名称飞机大战专业计算机科学与技术班级1820544 ___学号********* _____姓名王锐____ _指导教师韩燕丽__2019年6 月15 日(一)、课程设计题目:飞机大战(二)、目的与要求:1、目的:(1)要求学生达到熟练掌握C++语言的基本知识和技能;(2)基本掌握面向对象程序设计的基本思路和方法;(3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。

2、基本要求:(1)要求利用面向对象的方法以及C++的编程思路来完成系统的设计。

(2)在系统的设计中,要求运用面向对象的机制(继承及多态性),来实现系统功能,并且要建立清晰的类层次结构。

(3)在系统设计中要分析和定义各个类,每个类中要有各自的数据成员和成员数。

(4)主函数中提供菜单选项,并给出足够的选择信息以及提示信息。

(5)程序具有一定的健壮性,不会因为用户的输入错误引起程序运行错误而中断执行。

对输入值的类型、大小范围、字符串的长度等,进行正确性检查,对不合法的输入值给出出错信息,指出错误类型,等待重新输入。

3、创新要求:在基本要求达到后,可进行创新设计,如根据查找结果进行修改的功能。

(三)、设计方法和基本原理:功能要求:设计一个基于控制台的简洁流畅的飞机大战游戏。

问题的解决方案:根据系统功能要求,可以将问题解决分为以下步骤:(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;(2)分析系统中的各个实体及它们之间的关系包括属性和行为;(3)根据问题描述,设计系统的类层次;(4)完成类层次中各个类的描述(包括属性和方法);(5)完成类中各个成员函数的定义;(6)完成系统的应用模块;(7)功能调试;目录1.系统需求分析 (1)2.总体设计 (2)3.详细设计及实现 (5)4.系统调试 (5)5.结论 ............................................................................................... 错误!未定义书签。

经典实验--飞机大战小游戏

经典实验--飞机大战小游戏

经典实验--飞机⼤战⼩游戏·⼀、需求设计 1.为检测C语⾔的学习成果,根据所学的C语⾔知识,设计程序:飞机⼤战⼩游戏; 2.⾃⾏定义变量,函数或结构体,编写源代码并进⾏编译运⾏测试; 3.根据编写的代码,⾃⾏攥写实验报告;·⼆、系统设计 1 实验题⽬: 飞机⼤战⼩游戏 2 游戏描述 飞机⼤战是⼀款惊险刺激的射击游戏,通过控制飞机的上下左右移动,发射⼦弹,击退敌机并赢得分数,玩游戏既可以锻炼⼈的反应能⼒,也可以起到放松⾝⼼的作⽤. 进⾏C语⾔⾯向对象程序设计课程设计主要是在学习C语⾔这门⾯向对象语⾔的基础上,并通过实践加深对 C语⾔⾯向对象程序设计语⾔特点的认识与理解。

同时,可以提⾼运⽤C编程语⾔解决实际问题的能⼒;锻炼实际的编程能⼒;还能提⾼调查研究、查阅技术⽂ 献、资料以及编写软件设计⽂档的能⼒。

3 功能要求 【1】实现游戏难度的选择,飞机模型以及界⾯的外观设计等的功能。

【2】实现⽅向操移动的操作和敌机随机⽣成功能。

【3】分数计算功能。

【4】游戏的开始,暂停,结束以及分数显⽰的功能。

三、概要设计 1 简要设计及所涉及的知识 运⽤⼆维数组的加减和循环来设计游戏.通过下,xy的加减实现位置的移动;然后⽤⼀系列函数,实现各功能; 2 功能描述 (1) 难度选择: 1为困难,2为⼀般,3为简单,Enter开始游戏; (2) 操作:按1235控制飞机左下右上移动,空格发射⼦弹,按8暂停,按0停⽌游戏并输出分数;; (3) 游戏的测评⽅式为计分制,每击中⼀架敌机分数加1,⽆分数限制;·四详细设计 1定义全局变量 (1) long long int speed = 0;//控制敌机的速度 (2) int position_x, position_y;//飞机的所在位置 (3) int high, width;//地图的⼤⼩ (4) int bullet_x, bullet_y;//⼦弹的位置 (5) int enemy_x, enemy_y;//敌⼈的位置 (6) int map[MAX][MAX]; (7) /*地图符号说明:0表⽰空⽩,1表⽰战机*的区域,2表⽰敌⼈战机的位置。

飞机大战项目实训报告

飞机大战项目实训报告

飞机大战项目实训报告一、项目背景随着计算机技术的不断发展和完善,游戏设计成为了计算机软件开发的重要组成部分之一。

针对此,本实训项目选择了一款单机游戏——飞机大战。

二、项目概述《飞机大战》是一款盛行于各大游戏平台的街机游戏,其玩法简单,操作容易上手,可单人、多人游戏。

玩家通过控制战斗机的移动与攻击,击败敌机、坦克、大型BOSS等,累计积分并提高自己的得分记录。

三、项目分析1.游戏玩法(1) 游戏起始界面:菜单栏、游戏设置、游戏排名、游戏开始、游戏介绍等。

(2) 游戏主界面:飞机、子弹、敌机、敌机轨迹、背景、音效等。

(3) 游戏结束界面:游戏得分、游戏排名、重新开始、返回主界面等。

2.技术要点图形处理、音频处理、基本算法、游戏逻辑、前端UI设计等。

四、开发流程1.需求分析首先要对游戏界面、游戏机制等进行详细的分析,梳理各个功能模块,并且根据分析结果来进行程序开发。

2.原型设计设计游戏UI框架,并进行渲染效果分析。

3.编码实现搭建游戏框架、实现游戏逻辑和算法,并对游戏进行调试。

4.测试调试经过编码实现后,对游戏进行测试和调试,确保游戏实现效果良好。

5.发布上线游戏开发完成后,进行打包、发布和上线操作。

五、技术要点1.图像处理:游戏中大量使用了图片素材进行操作,包括:飞机、子弹、敌机图片素材、背景图片处理等。

2.音频处理:音频处理主要用于游戏过程中背景音乐、游戏音效等相关操作。

3.基本算法:本游戏使用了几何线段相交法、多边形拐角点判断法等进行处理。

4.游戏逻辑:游戏逻辑主要包括游戏场景构建、游戏胜负判定等操作。

5.前端UI设计:游戏前端UI设计用于游戏的用户交互,即各种按钮、控件的设计和实现。

六、总结通过此次实训项目,我对游戏开发有了深入的了解和认识。

在项目的实践过程中,我逐步掌握了游戏开发的流程、技术要点等,也通过不断的学习和实践提高了自己的编程水平。

在以后的开发中,我需要更加深入的学习和掌握游戏开发中的各种技巧和实践经验,不断提高自己的编程水平和能力。

中南大学电信-C语言飞机大战实验报告资料

中南大学电信-C语言飞机大战实验报告资料
char g_back[g_back_x][g_back_y]=
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
{
for(j=1;j<g_back_y-1;j++)
{
if((g_back[i-1][j]==2)||(g_back[i-1][j]==4))
continue;
g_back[i][j]=g_back[i-1][j];
}
}
produce_air();
}
//英雄飞机发子弹函数
void air_shot(int x,int y)
}
pEnd=ptemp;
}
//子弹移动函数
void shot_move()
{
struct Node *ptemp=pHead;
struct Node *ptemp1=pHead;
struct Node *pt=pHead;
int i;
int k;
while(ptemp1!=NULL)
{
ptemp=ptemp1;
for(i=0;i<g_back_x;i++)
{
for(j=0;j<g_back_y;j++)
{
switch(g_back[i][j])
{
case 0:strcat(strback[i]," ");
break;
case 1:strcat(strback[i],"■");
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
} 3.1.2 CObList 链表
在本程序中我使用了 CObList 链表来分别存储敌机,炸弹,导弹,爆 炸效果和掉落物品。CobList 类似于一个双向链表,POSITION 类型的变量 为链表的键。使用 POSITION 变量,既可以作为链表循环中的循环变量, 也可以作为标记某个位置的标签。我们可以通过获得某元素的 POSITION 来访问它。本程序中主要用到的函数有:GetHeadPosition() ——获取链表首元素的 POSITION,AddTail()——向链表尾部添加新的 元素,GetNext( POSITION& rPosition )——返回当前 rPosition 指向的 元素,并使 rPosition 指向下一个元素。 3.1.3 内存释放
软件开发生产 实习报告
姓名 班级 实习地点 实习成绩
XXX XXXX XXX
学号 项目名称 实习时间 指导教师签字
XXXXXX 飞机大战游戏
XXX
信息科学与工程学院
2014 年 10 月 6 日
软件开发生产实习报告
1. 实习目的
1.1 使学生全面了解软件项目实施的过程,理解软件企业对于程序员的基本 素质和技术能力要求。 1.2 使学生掌握 C++及 Window 程序设计的基本技术,能够运用 MFC 技术及其 开发环境进行小型项目的开发。 1.3 重点培养学生的独立创新精神和查阅资料能力,提高其口头和书面的沟 通能力。 1.4 使学生掌握快速学习新知识、新技术方法,培养良好的分析问题和解决 问题的能力 1.5 重点提高学生的编程能力,使学生建立正确的编程理念,养成规范的编 程习惯。
END_MESSAGE_MAP()
3.导弹释放存在间隔,有一定的运行速度 4.导弹遇到敌机发生爆炸,敌机被炸毁,导弹消失,玩家得分,当 得分到达一定数目就进入下一关 5.由计算机控制敌机自动向战机发动攻击,击中时战机掉血,初始 20 条命 6.敌机数量随机,计算机生成敌机时随机选择类别 7.敌机从游戏区域的上端进入,左右位置随机 8.敌机行驶期间,不左右移动,不反向移动 9.当敌机位于战机后方时发射炸弹对战机进行攻击 10.敌机运行线路为直线,方向为从下至上,或从下至上,不可左右 移动,纵向由发射位置起至游戏区域结束 11.敌机与敌机炸弹均具有一定的速度,且随着关卡难度的增大,数 量和速度均增加 12.炸弹遇到战机时发生爆炸,战机生命数量减少 1,炸弹消失,游 戏结束炸弹运行时有速度限制 13.游戏过程中会随机掉落物品,得到后可以变换子弹或者得到全屏 炸弹 14.根据菜单可以选择重新开始游戏,Esc 键可以暂停游戏 15.可以在选择关卡处选择关卡 16.在游戏界面输出当前游戏进行信息,包括当前得分、当前关卡以 及剩余生命数量 17.游戏过程中添加了声效 3.2.2 总体设计 3.2.2.1 系统模块划分
3.1.1 透明贴图实现技术 绘制透明位图的关键就是创建一个“掩码”位图(mask bitmap),这
个“掩码”位图是一个单色位图,它是位图中图像的一个单色剪影。 在详细介绍实现过程之前先介绍下所使用的画图函数以及函数参数
所代表的功能;整个绘制过程需要使用到 BitBlt()函数。整个功能的实现 过程如下:
实现。 2.7 全部代码测试并改进,尽可能好的完善项目。
3.实习过程
3.1 技术准备 提高程序编写能力,提高程序调试能力,资料检索、阅读能力,强大的
自学能力,加深对面向对象程序设计的理解。具体说来,需要掌握指针的安 全和类型转换,继承和组合的区别、继承的使用,多态的使用,GDI 的应用 以及 UML 建模,了解游戏编程架构、Win32 API 编程。再具体来说:
(1) 创建一张大小与需要绘制图像相同的位图作为“掩码”位图; (2) 将新创建的“掩码”位图存储至掩码位图的设备描述表中; (3) 把位图设备描述表的背景设置成“透明色”,不需要显示的颜 色; (4) 复制粘贴位图到“掩码”位图的设备描述表中,这个时候“掩 码”位图设备描述表中存放的位图与位图设备描述表中的位图一样; (5) 把需要透明绘制的位图与对话框绘图相应区域的背景进行逻辑 异或操作绘制到对话框上; (6) 把“掩码”位图与这个时候对话框相应区域的背景进行逻辑与 的操作; (7) 重复步骤 5 的操作,把需要透明绘制的位图与对话框绘图相应区 域的背景进行逻辑异或操作绘制到对话框上; (8) 最后把系统的画笔还给系统,删除使用过的 GDIObject,释放非 空的指针,最后把新建的设备描述表也删除。 BOOL CGameObject::LoadImage(CImageList& imgList,UINT bmpID,
MemBitmap.CreateCompatibleBitmap(MemDC,nWidth,nHeight);// 将位图选入到内存显示设备中 CBitmap* pOldBit=MemDC.SelectObject(&MemBitmap); MemDC.FillSolidRect(0,0,nWidth,nHeight,RGB(255,255,255)); MemDC.MoveTo(……); MemDC.LineTo(……); pDC->BitBlt(0,0,nWidth,nHeight,&MemDC,0,0,SRCCOPY); MemDC.SelectObject(pOldBit); MemBitmap.DeleteObject(); MemDC.DeleteDC(); 3.1.5 键盘对战机的控制 添加 OnKeyDown()和 OnKeyUp()函数,用 GetKeyState()函数来判 断按下了哪个键,通过修改战机的相应参数来实现对战机的控制,如上下 左右运动,发射子弹等等。如果战机此时已处于屏幕边缘,则控制战机飞 出屏幕的按键信息无效。 3.2 项目实施 按照项目实施计划和技术准备一步一步去实现项目。 3.2.1 功能需求 本程序为飞机大战游戏,飞机大战游戏作为 PC 中一款桌面游戏,界 面简洁流畅、游戏方式简单,玩起来易于上手。 主要实现的功能如下: 1. 战机数量为 1 2.由玩家通过键盘控制(方向键控制位置、默认开启炸弹、空格键 发射清屏导弹)战机
#ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif
static int init; int lvl[31]={550,1100,2200,2933,3758,4583,5408,6233,7058,7883,8708,9533,10358,11183, 12008,12833,13658,14483,15308,16133,16958,17783,18608,19433,20258,21083,21908,2 2733,23558,24383,25208}; ////////////////////////////////////////////////////////////////////////// /// // CPlaneGameView
2. 实习计划
2.1 C++语言知识复习,尤其是指针的安全和类型转换继承的使用、多态的 使用。 2.2 项目技术学习:Windows 窗体消息机制、透明绘图、游戏对象的面向对 象分析和设计、API 使用,参考相应的书籍详尽的学习。 2.3 Windows API 编程基础练习,实现简单的透明贴图,即把战机图片贴 到屏幕上。 2.4 读懂老师给的游戏项目技术架构设计、游戏对象的面向对象分析和设 计、UML 建模,同时把其余的图片包括敌机、子弹、爆炸效果登都贴到屏幕 上。 2.5 项目编码、测试(包括讲师演练)、完成基本功能,主要实现战机的控 制移动、敌机的随机出现并移动和敌机发射子弹等。 2.6 项目迭代,完成扩展功能,把本项目的功能(尤其是人工智能部分)
COLORREF crMask,int cx,int cy,int nInitial)
{ CBitmap bmp; if(!bmp.LoadBitmap(bmpID)) return FALSE; if(!imgList.Create(cx, cy, ILC_COLOR24|ILC_MASK, nInitial, 0)) return FALSE; imgList.Add(&bmp, crMask); return TRUE;
游戏规则子系统
模块名称
功能简述
人工智能
人机对战规则的实现
游戏子系统
模块名称
功能简述
应用程序对象
游戏程序的加载、游戏对象的绘制、游戏规则的调用、玩
家的键盘事件获取
游戏对象
各个游戏对象的抽象父类
战机对象 敌机对象 导弹对象 炸弹对象 爆炸对象 文字对象 物品对象
类体系
战机类 敌机类 导Байду номын сангаас类 炸弹类 爆炸类 文字类 物品类
IMPLEMENT_DYNCREATE(CPlaneGameView, CView)
BEGIN_MESSAGE_MAP(CPlaneGameView, CView) // 标准打印命令 ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint) ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint) ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview) ON_WM_TIMER() ON_WM_KEYDOWN() ON_COMMAND(ID_START, CPlaneGameView::OnStart) ON_COMMAND(ID_RESTART, CPlaneGameView::OnRestart) ON_COMMAND(ID_SETLVL, CPlaneGameView::OnSetlvl)
当数据量很大时,绘图可能需要几秒钟甚至更长的时间,而且有时还 会出现闪烁现象,为了解决这些问题,可采用双缓冲技术来绘图。 双缓冲实现过程如下:
相关文档
最新文档