飞机大战文档

飞机大战文档
飞机大战文档

毕业实训报告

课题名称: Unity 游戏开发

专业:移动开发

班级: Rz 移动 152 学号: 201560310213

学生姓名:张博

指导教师:段菲菲

年月日

中原工学院

毕业实训任务书

摘要

摘要游戏,目前已经是最大众化的娱乐之一,而其中的3D游戏也是技术含量较高的项目之一。Unity3D是一个3D/2D游戏开发工具和游戏引擎套件,其中包括了图形、音频、物理、网络等多方面的引擎支持,并且有一个非常强大的编辑器来整合这一切,非常适合于游戏开发。

本文主要是以Unity5.3.8为开发环境,设计并开发一款单机版的三维游戏——直升机大战,旨在介绍直升机战斗游戏的实现方法,并逐步介绍使用Unity3D开发3D游戏的方法和技巧。通过这次游戏制作,使我体会到了,制作一个游戏所需要做的工作,包括前期的游戏策划,素材的制作,到后期的游戏的设计,代码实现等,最终形成一个完整的3D游戏,并通过Unity3D选择平台生成可执行文件。但本次设计的直升机战斗游戏所做工作还不够完善,开始场景中菜单比较简单,游戏中武器只有一种,关卡也只有一个,这些都需要以后进一步设计.

第1章项目分析

1.1 Unity 及其组成的介绍

本书主要讲解的是,如何使用 Unity 开发 2D 游戏。但在开始讲解之前,最好先熟悉一下Unity 这个工具。本章会首先介绍 Unity 的下载和安装,然后会介绍 Unity 界面的各组成部分,这些知识会在本书后面的章节频繁使用,所以不要掉以轻心。

1.2 Unity 概述

Unity 现如今已是非常的流行,因此在开始学习 2D 游戏开发之前,本节就来简要说明下Unity,及其下载和安装方法。 1.Unity 简介 Unity 是一款跨平台的专业游戏引擎,可以使用它轻松的开发各种 2D 和 3D 游戏,然后部署到各种游戏平台上。当然也包括这些主流游戏平台: Windows、 iOS、 Android、 Xbox 360、 PS3。

第2 章

2.1 需求分析

玩家:控制游戏中的战机,向敌机发出攻击;

敌机:敌机不会发射子弹攻击玩家,boss敌机由程序控制自动向玩家飞机发出攻击

子弹:玩家和boss 敌机都拥有自己的子弹,玩家的子弹可以用来攻击所有的敌机

子弹礼包:玩家飞机得到子弹礼包后,玩家的飞机会在一段时间内有发射双排子弹功能炸弹礼包:玩家飞机得到子弹礼包后,玩家飞机如果使用炸弹可以清除屏幕上除boss外的所有敌机。

2.2 功能需求:

1》用户进入游戏开始菜单可以选择开始游戏,退出游戏,游戏帮助;

2》进入游戏后可暂停游戏

3》玩家飞机以一定速度自下而上飞行,用户可以控制飞机前后左右移动

4》玩家飞机一直发子弹,用户通过控制飞机位置来扫描敌机;

5》不同种类的敌机以一定速度随机出现;

6》玩家飞机的发射子弹击中敌机后消失。

7》玩家飞机达到一定分数后,程序会随机提供子弹包和炸弹包;》

8》玩家与礼包碰撞后即可得到礼包;

9》弹礼包后,玩家的飞机会在一段时间内有发射双排子弹功能

10》进行游戏时,屏幕左上角会显示用户达到的分数;

2.3 用户功能需求

由于本游戏交互性好,简单易操作,对用户并没有特殊的要求。一般用户经过几分钟后就可以掌握游戏规则。

2.4 游戏性能需求

1)实时性:本应用为手机游戏对于用户操作必须做出立即响应,否则本游戏失败2)单机手机游戏最大的特点纪委已操作行,用户在不看说明的情况下也能够玩,并且在玩过几遍之后即熟悉本游戏规则。这是本应用对于操作性的要求。

2.5 游戏流程:

如图2.5-1

第3章场景设计

3.1.创建游戏场景

1.由于创建的是2d项目,则将图片拖入Scene中,该图片自动成为一个精灵,所以将图片信息拖入摆放即可。

如图3-1-1 所示

2.下面创建一个GameManager文件,其绑定在摄像机中,主要负责飞机生命,玩家得分,背景播放等的显示功能。而生命,得分的显示需要我们创建GUIText来摆放。

public enum GameState{

Runing,

Pause

}

public class GameManager : MonoBehaviour {

public static GameManager _instance;

public int score=0;

private GUIText guiText;

public GameState gameState = GameState.Runing;

_instance=this;

guiText=GameObject.FindGameObjectWithTag("ScoreGUI").GetComponent();

}

// Update is called once per frame

void Update () {

guiText.text="Score:"+score;

}

public void transfromGameState(){

if(gameState==GameState.Runing){

pauseGame();

}else if(gameState==GameState.Pause){

continueGame();

}

}

3.然后我们来实现背景的滚动。首先创建两个一样的背景图片上下摆放,如下图所示,这里切换到3d 模式,更加形象

如图3-1-3

4.下面创建用于绑定在背景上的脚本BackgroundTransform,代码如下

public class BackgroundTransform : MonoBehaviour {

public static float moveSpeed = 2f;

void Update () {

this.transform.Translate( Vector3.down * moveSpeed * Time.deltaTime );

Vector3 postion = this.transform.position;

if(postion.y<=-8.52f){

this.transform.position = new Vector3(postion.x,postion.y+8.52f*2,postion.z );

}

}

}

然后将脚本绑定在两张背景图上即可。

5.主角创建与背景创建基本一样,也是可以用一张2d贴图,就不多说了。主角脚本主要处理移动,发射子弹,处理碰撞等,代码如下:

public class Bullet : MonoBehaviour {

public float speed = 2;

// Update is called once per frame

void Update () {

transform.Translate( Vector3.up * speed *Time.deltaTime );

if(transform.position.y>4.3f){

Destroy(this.gameObject);

}

}

void OnTriggerEnter2D(Collider2D other) {

if(other.tag=="Enemy"){

if(!other.GetComponent().isDeath){

other.gameObject.SendMessage("BeHit");

GameObject.Destroy(this.gameObject);

}

}

6.上面代码中我用了bulletTop,bulletLeft,bullfight,这是我为主机添加的两个子对象,主要是用于发射子弹,相当于炮筒吧,而bullet则是定义的预设,其中绑定的脚本后面会说明。

3-1-6

代码实现如下:

public class Gun : MonoBehaviour {

public float rate =0.2f;

public GameObject bullet;

public void fire(){

GameObject.Instantiate(bullet,transform.position,Quaternion.identity );

}

public void openFire(){

InvokeRepeating("fire",1,rate);

}

public void stopFire(){

CancelInvoke("fire");

}

好了,通过以上的代码我们就可以按键盘的方向键移动飞机,按空格键发射子弹了,我

已经等不及要打敌人了。

3.2 创建敌机

1.敌机也是先拖入敌机图片,然后绑定脚本,添加组件,然后保存为预设,我们以后还有个敌机生产器要生产敌机呢。

我创建了三种敌机预设

3-2-1 敌机预制

2.敌机主要是移动,碰撞。下面来看看敌机脚本:

public enum EnemyType{

smallEnemy,

middleEnemy,

bigEnemy

}

public class Enemy : MonoBehaviour {

public int hp = 1;

public float speed = 2;

public int score = 100;

public EnemyType type= EnemyType.smallEnemy;

public bool isDeath = false;

public Sprite[] explosionSprites;

private float timer=0;

public int explosionAnimationFrame=10;

private SpriteRenderer render;

public float hitTimer = 0.2f;

private float resetHitTime ;

public Sprite[] hitSprites;

// Use this for initialization

void Start () {

render = this.GetComponent();

resetHitTime=hitTimer;

}

// Update is called once per frame

void Update () {

this.transform.Translate( Vector3.down*speed*Time.deltaTime );

if(this.transform.position.y<=-5.6f){

Destroy(this.gameObject);

}

if(isDeath){

timer+=Time.deltaTime;// 0

int frameIndex = (int)(timer/(1f/explosionAnimationFrame));

if(frameIndex>=explosionSprites.Length){

//destroy

Destroy(this.gameObject);

}else{

render.sprite= explosionSprites[frameIndex];

}

}else{

if(type==EnemyType.middleEnemy||type==EnemyType.bigEnemy){

if(hitTimer>=0){

hitTimer-=Time.deltaTime;

int frameIndex = (int)((resetHitTime-hitTimer)/(1f/explosionAnimationFrame));

frameIndex%=2;

render.sprite= hitSprites[frameIndex];

}

}

}

if (Input.GetKeyDown(KeyCode.Space) && BombManager._instance.count>0 ) {

toDie();

}

}

public void BeHit(){

hp-=1;

// explosion

if(hp<=0){

toDie();

}else{

hitTimer=resetHitTime;

}

}

private void toDie(){

if(!isDeath){

isDeath=true;

GameManager._instance.score+=score;

}

}

}

3-2-2

3.上面使用到了一个动画,就是敌机爆炸时的动画。那么如何创建动画呢?首先资源中可以拖动一组连续的爆炸图片到场景中,系统会自动提醒创建动画,命名为explosion即可。然后Project视图中就出现了一个animation和一个animator。在菜单栏找到Windows -> Animation和Winodws -> Animator可以打开如下窗口。

如图3-1-3

如图3-1-3-1

4.下面是敌机生产器,在主界面的左右两边的顶部分别放上两个空物体用来创建敌机。敌机创建时间为1~3秒不等,然后绑定创建脚本即可。

public class Spawn : MonoBehaviour {

public GameObject enemy0Prefab;

public GameObject enemy1Prefab;

public GameObject enemy2Prefab;

public GameObject awardType0Prefab;

public GameObject awardType1Prefab;

public float enemy0Rate = 0.5f;

public float enemy1Rate = 5f;

public float enemy2Rate = 8f;

public float awardType0Rate = 7;

public float awardType1Rate = 10;

// Use this for initialization

void Start () {

InvokeRepeating("createEnemy0",1,enemy0Rate);

InvokeRepeating("createEnemy1",3,enemy1Rate);

InvokeRepeating("createEnemy2",6,enemy2Rate);

InvokeRepeating("createAwardType0",10,awardType0Rate);

InvokeRepeating("createAwardType1",10,awardType1Rate);

}

// Update is called once per frame

void Update () {

}

public void createEnemy0(){

float x = Random.Range(-2.15f,2.15f);

GameObject.Instantiate(enemy0Prefab,new

Vector3(x,transform.position.y,0),Quaternion.identity);

}

public void createEnemy1(){

float x = Random.Range(-2.04f,2.04f);

GameObject.Instantiate(enemy1Prefab,new

Vector3(x,transform.position.y,0),Quaternion.identity);

}

public void createEnemy2(){

float x = Random.Range(-2.04f,2.04f);

GameObject.Instantiate(enemy2Prefab,new

Vector3(x,transform.position.y,0),Quaternion.identity);

}

public void createAwardType0(){

GetComponent().Play();

float x = Random.Range(-2.1f,2.1f);

GameObject.Instantiate(awardType0Prefab,new

Vector3(x,transform.position.y,0),Quaternion.identity);

}

public void createAwardType1(){

GetComponent().Play();

GameObject.Instantiate(awardType1Prefab,new

Vector3(x,transform.position.y,0),Quaternion.identity);

}

}

5.关于碰撞检测

敌机碰撞,如果碰到了敌机死亡:

3-1-5.1

敌机碰撞,由于只要碰撞就死亡,所以动画帧执行时间快,死亡很快。运行界面:

3-1-5.2

3.2 UI 设计 :

每次打死敌机加分,三种不同的加分分数,分别5,10 ,15分。在游戏界面编辑创建游戏Text,记录分数,以及退出时记录最高成绩。重新开始按钮,和退出成绩按钮Button组件。

如图视窗所示:

3-2-1

Ok!下面开始通过代码来控制程序的显示和执行:

3-2-2

死亡时保存记录最高分

3-2-3 可以看出图中我设计了奖励,保存为预制体

如果吃到奖励增加左右子弹的发射攻击敌机

3-2-4

控制奖励的移动逻辑:

3-2-5

运行如下:

3-2-6

游戏结束时点击退出和重新开始执行不同的事件。退出:

3-2-7 退出代码图

重新开始就再次开始重玩即可。

第4章

第五章结束语

本章是对整个实训过程的总结,首先总结实训完成情况(很好完成、较好完成、还是未完成等),要具体说明开发效果,有哪些不足,有哪些待改进;然后总结自己的心得体会,有哪些收获,有哪些经验,遇到了什么问题,是如何解决的,对整个行业的认识有什么提高,对自己的优势劣势有什么认识等等,内容不限。

飞机大战实验报告

飞机大战实验报告 专业:网络工程132班 学号:139074298 姓名:孙仁强 计算机科学与技术学院二零一六年十二月

一、软件运行所需要的软硬件环境 本系统是以Windows系统为操作平台,用Java编程语言来实现本系统所需功能的。本机器的配置如下: 处理器:CORE i7 主频:1.2Hz以上 内存:4G以上 硬盘:HHD 50G 编程语言:Java 开发环境:windows7 开发软件:Eclipse Mars 二、游戏流程 1.用户打开游戏,进入开始菜单。 2.用户点击开始游戏按钮,进入游戏界面; 3.用户通过触屏方式控制玩家飞机上下左右移动,躲避与子弹相撞; 4.游戏失败后,显示本次游戏得分,用的秒数和水平; 5.退出游戏 三、主要代码 1、准备代码设置窗口使用双缓冲使飞机不闪烁 Constant设置窗口大小 package com.ahut.准备代码; publicclass Constant { publicstaticfinalint GAME_WIDTH = 350; publicstaticfinalint GAME_HEIGHT = 600; } package com.ahut.准备代码; import java.awt.Image; import java.awt.image.BufferedImage;

import java.io.IOException; import https://www.360docs.net/doc/5c18666315.html,.URL; public class GameUtil { private GameUtil () {} public static Image getImage(String path) { BufferedImage bi = null; try { URL u = GameUtil.class.getClassLoader().getResource(path); bi = javax.imageio.ImageIO.read(u); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return bi; } } package com.ahut.准备代码; import java.awt.Frame; import java.awt.Graphics; import java.awt.Image; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; public class MyFrame extends Frame{ public void lauchFrame() { setSize(Constant.GAME_WIDTH, Constant.GAME_HEIGHT); setLocation(100, 100); setVisible(true); new PaintThread().start(); addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { System.exit(0); } }); }

飞机大战策划案

飞机大战策划案 目录 飞机大战策划案 (1) 一、概述 (2) 二、UI界面 (2) 2.1、开始界面 (2) 2.2、游戏关卡界面 (3) 2.3、游戏正式界面 (3) 2.4、排行界面 (4) 三、游戏正式开始规则 (5) 三、操作规则 (5) 四、飞机属性 (6) 五、敌机属性 (7) 5.1、敌机分类 (7) 5.2、敌机攻击模式 (7) 5.3、敌机出现及移动轨迹 (7) 六、积分获取规则 (8) 七、死亡复活规则 (8) 八、游戏正式开始规则 ..................................................................... 错误!未定义书签。 九、进入、暂停及结算界面 (9) 9.1、飞机进入场景模式: (9) 9.2、游戏暂停模式: (9) 8.2、结算界面 (9) 十、关卡详细设计 (10) 第一关设计: (11)

一、概述 飞机大战为一款竖版战机游戏,本游戏同时可支持多名玩家进行双人协作的飞机游戏,两名玩家结成一组共同开启一个副本场景进行游戏。最多支持100个副本。游戏开始后界面始终向下卷动。 二、UI界面 2.1、开始界面 说明: 1)该界面有一张底图 2)界面上方为游戏宣传图片 3)界面下方有三个按钮,分别为“开始游戏”、“排行榜”和“离开游戏”,注意每个按钮都有“普通”、“高亮”和、“点击”三种状态。 4)点击排行榜后,会出现排行界面。界面中按照分数高度的顺序排列所

有参加游戏的玩家。 5)点击离开游戏则关闭游戏。 6)点击开始游戏后进入游戏关卡界面。 2.2、游戏关卡界面 该界面出现时,关闭“开始界面”,界面由一张底图和11个按钮组成。 1-10个按钮为关卡选择按钮,第11个按钮为返回按钮,点击返回按钮后,返回开始界面。返回按钮有“普通”、“高亮”和、“点击”三种状态。 关卡按钮有“普通”、“高亮”、“点击”和“置灰”四种状态。初始状态为第一关按钮为普通可点击状态、其余关卡置灰不可点击。当第一关通关后,第二关按钮为普通可点击状态,以此类推。 点击“可点击的关卡按钮”后,进入游戏正式界面。 2.3、游戏正式界面 游戏界面大小为:600*800,界面背景不断向下卷动。

飞机大战实训报告.

程序设计综合实践 实习报告 学院名称 专业班级 学生姓名 学号 指导教师 山东科技大学

一、实习题目:飞机大战游戏的设计与实现 二、实习时间:18周~ 19周实习地点: 三、实习任务: 1.基本功能要求:飞机大战游戏必须运用透明贴图、按键处理、定时控制、双缓冲技术等技术实现战机(玩家)和敌机(计算机)对战功能 2.扩展功能:在完成基本功能基础上可以增加双人对战、游戏积分制、声音效果、多种子弹类型、客机类型、游戏关卡设计、多种类型敌机、游戏中间结果存贮等功能 四、小组分工说明:自己完成 五、实习成绩 六、指导教师对实习的评语: 指导教师(签章): 2015年月日

目录 1.概述 (4) 1.1实训项目简介 (4) 1.2实训项目功能说明 (4) 2.相关技术 (5) 2.1透明贴图技术 (5) 2.2 获取矩形区域并判断两个矩形区域是否相撞 (5) 2.3鼠标控制我方战机 (5) 2.4 Windows定时器技术 (6) 2.5 CObList链表 (6) 2.6对话框的应用 (7) 2.7双缓冲技术 (7) 3.需求分析 (7) 3.1功能需求分析 (7) 3.2 数据需求分析 . (7) 3.3 行为需求分析 (7) 3.4 其他需求 (7) 4.总体设计与详细设计 (8) 4.1 系统模块划分 (8) 4.2 主要功能模块 (8) 4.2.1系统主要类图 (8) 4.2.2飞机大战游戏设计执行流程图 (8) 4.3 扩展功能设计思路 (9) 4.4 软件结构设计体会 (9) 5.编码实现 (10) 5.1绘制游戏背景位图的程序 (10) 5.2各个游戏对象的绘制 (10) 5.3我方战机位置的动态控制 (12) 5.4各个游戏对象碰撞的实现 (13) 5.5游戏界面输出当前游戏信息 (15) 6.测试情况说明 (17) 6.1主要模块测试情况 (17) 6.2 主要功能测试情况 (18) 7. 实训中遇到的主要问题及解决方法 (19) 8.实训收获与体会 (19)

飞机大战MFC实验报告

实训报告 飞机大战游戏设计与开发

目录 1. 概述 (4) 2. 相关技术 (4) 2.1 透明贴图技术 (4) 2.2 CObList链表 (4) 2.3获取矩形区域函数 (4) 2.4弹出对话框函数 (5) 2.5字体的个性化输出函数 (5) 2.6设置定时器 (5) 2.7双缓冲技术 (5) 2.8 内存释放技术 (6) 2.9对话框中添加动态按钮 (6) 2.10检测方向键按下 (6) 3. 需求分析(用结构化方法或面向对象方法给出系统的主要需求模型) (6) 3.1功能需求分析 (6) 3.2 数据需求分析 (7) 3.3 行为需求分析 (7) 3.4 其他需求 (8) 4. 总体设计与详细设计 (8) 4.1 系统模块划分 (9) 4.2 主要功能模块 (10) 4.3 扩展功能设计思路 (10) 5. 编码实现 (11) 5.1游戏初始创建 (11) 5.2定时器 (11) 5.3背景及游戏开始、结束界面绘制函数 (11) 5.4键盘控制函数 (12) 5.5游戏对象进行碰撞测试和碰撞销毁 (13) 5.6创建动态按钮(开始游戏、游戏规则) (13) 5.6重新开始游戏代码 (14) 5.7设置游戏难度代码 (14) 5.8游戏结束时释放资源函数 (15) 5.9调整对话框大小函数 (15) 5.10开始界面背景绘制函数 (15) 5.11选择下一关卡以及选择完成后的执行代码 (16) 6.测试情况说明。 (17) 6.1主要模块测试情况(白盒) (17) 6.11各游戏对象碰撞检测爆炸模块测试 (17) 6.12战机导弹的方向速度模块测试 (17) 6.13文字显示,游戏结束和关卡进入模块测试 (18) 6.14设置游戏难度和重新开始模块测试 (18) 6.2 主要功能测试情况(黑盒) (18)

飞机大战游戏设计与实现

程序设计综合实践报告 信息科学与工程学院 2015年12月20日

目录 1. 概述 (1) 1.1 关卡设置 (1) 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)

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即可重新开始游戏。

飞机大战程序设计报告

程序设计综合实践 实习报告 一、实习题目:飞机大战游戏 二、实习时间: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,释放非空的指 针,最后把新建的设备描述表也删除。 BOOL CGameObject::LoadImage(CImageList& imgList,UINT

飞机大战实训报告

目录 1. 概述 (1) 2. 相关技术 (2) 2.1碰撞检测 (2) 2.2 CObList链表 (2) 2.3 设置定时器 (2) 2.4 背景滚动 (2) 2.5内存释放技术 (2) 3. 总体设计与详细设计 (2) 3.1 系统模块划分 (2) 3.2 主要功能模块 (3) 4. 编码实现 (5) 5. 实训中遇到的主要问题及解决方法 (37) 6. 实训体会 (37) 1. 概述 这次实训,目的以VS 为环境,利用MFC,使用C++语言编写一个简单的飞机大战游戏。 实现的主要功能: 1.有开始游戏界面,上下左右键控制飞机自由移动,空格键发射炮弹。 2.设有关卡,每打完一个boss就会过关,每过一关战机炮弹会升级,敌机随机发射 子弹数量增加。

3.战机起始十条命,可以通过过关和吃到道具增加血量。 4.战机子弹打中敌机,敌机就会爆炸,boss血量随关卡升高而增多,打败敌机或者 boss会有分数加成。 5.设有无敌模式和普通模式,无敌模式大招无限,生命无限,战机导弹直接升至最高 等级。 2. 相关技术 2.1碰撞检测 用CRect类的GetRect()函数可以获得当前对象的矩形区域,IntersectRect()并用此函数判断二者是否碰撞。 2.2CObList链表 这个程序使用CObList链表来存储各效果。CobList类似于一个双向链表,POSITION 类型的变量为链表的键。使用POSITION变量,既可以作为链表循环中的循环变量,也可以作为标记某个位置的标签。我们可以通过获得某元素的POSITION来访问它。 本程序中主要用到的函数有: GetHeadPosition():获取链表首元素的POSITION; AddTail():将新的元素添加到链表最后; GetNext( POSITION& rPosition ):使rPosition指向下一个元素。 2.3 设置定时器 SetTimer()函数来设置定时器。 2.4 背景滚动 为了让游戏场景更加逼真,游戏节奏更加合理,可以通过让背景滚动来提高游戏的场景效应,实现这一技术时,可以将一张背景图片复制为2张,从上到下连续的拼接在一起,使其不会出现图片的卡顿和瞬移现象。 2.5内存释放技术 这个程序中有大量的地方需要使用内存,如果不及时删除会出现闪图等情况,容易导致程序崩溃,要及时释放内存资源。 3. 总体设计与详细设计 3.1 系统模块划分

飞机大战实训报告

目录 1. 概述.................................................. 1. 概述 这次实训,目的以VS 为环境,利用MFC,使用C++语言编写一个简单的飞机大战游戏。

实现的主要功能: 1.有开始游戏界面,上下左右键控制飞机自由移动,空格键发射炮弹。 2.设有关卡,每打完一个boss就会过关,每过一关战机炮弹会升级,敌机随机发射子 弹数量增加。 3.战机起始十条命,可以通过过关和吃到道具增加血量。 4.战机子弹打中敌机,敌机就会爆炸,boss血量随关卡升高而增多,打败敌机或者boss 会有分数加成。 5.设有无敌模式和普通模式,无敌模式大招无限,生命无限,战机导弹直接升至最高 等级。 2. 相关技术 碰撞检测 用CRect类的GetRect()函数可以获得当前对象的矩形区域, IntersectRect()并用此函数判断二者是否碰撞。 CObList链表 这个程序使用CObList链表来存储各效果。CobList类似于一个双向链表,POSITION 类型的变量为链表的键。使用POSITION变量,既可以作为链表循环中的循环变量,也可以作为标记某个位置的标签。我们可以通过获得某元素的POSITION来访问它。 本程序中主要用到的函数有:

GetHeadPosition():获取链表首元素的POSITION; AddTail():将新的元素添加到链表最后; GetNext( POSITION& rPosition ):使rPosition指向下一个元素。 设置定时器 SetTimer()函数来设置定时器。 背景滚动 为了让游戏场景更加逼真,游戏节奏更加合理,可以通过让背景滚动来提高游戏的场景效应,实现这一技术时,可以将一张背景图片复制为2张,从上到下连续的拼接在一起,使其不会出现图片的卡顿和瞬移现象。 内存释放技术 这个程序中有大量的地方需要使用内存,如果不及时删除会出现闪图等情况,容易导致程序崩溃,要及时释放内存资源。 3. 总体设计与详细设计 系统模块划分

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

C++程序设计A2 课程设计报告 课程名称C++程序设计A2 课题名称飞机大战 专业计算机科学与技术 班级1820544 ___ 学号182054424 _____ 姓名王锐____ _ 指导教师韩燕丽__ 2019年6 月15 日

(一)、课程设计题目: 飞机大战 (二)、目的与要求: 1、目的: (1)要求学生达到熟练掌握C++语言的基本知识和技能; (2)基本掌握面向对象程序设计的基本思路和方法; (3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。 2、基本要求: (1)要求利用面向对象的方法以及C++的编程思路来完成系统的设计。 (2)在系统的设计中,要求运用面向对象的机制(继承及多态性),来实现系统功能,并且要建立清晰的类层次结构。 (3)在系统设计中要分析和定义各个类,每个类中要有各自的数据成员和成员数。 (4)主函数中提供菜单选项,并给出足够的选择信息以及提示信息。 (5)程序具有一定的健壮性,不会因为用户的输入错误引起程序运行错误而中断执行。对输入值的类型、大小范围、字符串的长度等,进行正确性检查,对不合法的输入值给出出错信息,指出错误类型,等待重新输入。 3、创新要求: 在基本要求达到后,可进行创新设计,如根据查找结果进行修改的功能。(三)、设计方法和基本原理: 功能要求: 设计一个基于控制台的简洁流畅的飞机大战游戏。 问题的解决方案: 根据系统功能要求,可以将问题解决分为以下步骤: (1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计; (2)分析系统中的各个实体及它们之间的关系包括属性和行为; (3)根据问题描述,设计系统的类层次; (4)完成类层次中各个类的描述(包括属性和方法); (5)完成类中各个成员函数的定义; (6)完成系统的应用模块; (7)功能调试;

飞机大战游戏修改后文档

飞机大战 制作者:王迪锋、陶晶楠、杨可鑫、佟春月 制作时间:2016/3

目录: 1、游戏概况------------------------3 2、游戏安装说明--------------------4 3、游戏玩法的基本介绍--------------5 4、游戏设计的基本框架--------------8 5、游戏设计中关键难点的解决-------11 6、关于学习程序设计的心得---------12

一、游戏概况 1、编写目的 编写此需求说明书的目的,是为了能让组中的成员更好的了解现实市场需求,从而开发出更加符合用户体验的软件。此说明书对Android飞机大战的总体及用户界面及运行环境等做出了详细的说明。它作为对该系统概要设计的依据,帮助开发人员了解本系统的框架思想及实现功能,并验证核实该产品能否满足用户要求的标准,便于技术文档和需求变化的管理。同时也是用户与开发人员双方对软件需求取得共同理解的基础。 软件开发小组的每一位成员都应详细阅读此说明书,明确开发目的,按要求完成软件的开发,经使用方认可的需求说明将作为产品特征评价、仲裁的重要考。 2、项目背景 ★软件名称:飞机大战 ★软件创意:开发出一款娱乐的安卓游戏应用程序 ★面向用户:所有喜欢娱乐的用户 ★项目组成员:王狄峰,佟春月,杨可鑫,陶晶楠 3、目标 为了开发出一款娱乐游戏软件。本款软件的目标定位是所有喜爱娱乐的用户。

4、开发环境 ★硬件环境 CPU:1.2GHz以上 内存:512MB以上 硬盘:40G以上 网络:10M/100M网卡,保证通畅的网络连接 其他:显示器、键盘、鼠标 ★运行平台: 手机/模拟器:android4.03以上 二、游戏安装说明 安装飞机大战.apk 本软件设计完成后经过测试没有发现问题,生成的应用程序名称为plane.apk,将此文件按照手机安装其他软件的步骤安装到是android操作系统的手机上,运行该软件即可

优质实用文档精选——飞机大战需求分析报告

飞机大战 需求分析报告 开发小组:STARS 组长: 组员: 2016.05.24

目录 一、概述 (2) 1.1 项目内容 (2) 1.2 项目开发 (2) 1.3 项目组员 (2) 1.4 组员分工 (3) 1.5 项目进度计划表 (3) 1.6 验收标准 (3) 1.7 项目关键问题 (3) 二、项目产品 (4) 2.1 产品中的角色: (4) 2.2 产品功能需求: (4) 2.2.1 游戏具体功能需求 (4) 2.2.2 用户功能需求 (4) 2.2.3 美工音效需求 (5) 2.2.4 游戏性能需求 (5) 三、游戏流程 (5) 3.0 游戏操作 (6) 3.1 游戏流程 (5) 3.2 游戏流程图 (6)

一、概述 1.1 项目内容 本项目产品名称为“飞机大战”,以Java语言开发,界面简洁流畅,游戏方式简单,玩家易于上手。 1.2 项目开发 以java语言进行项目的编程实现,项目开发环境如下: 开发工具:Eclipse 开发语言:Java 1.3 项目组员

1.4 组员分工 1.5 项目进度计划表 1.6 验收标准 1)游戏可正常运行; 2)实现项目需求说明书的大部分需求; 3)游戏界面友好,易于交互; 4)项目具有较高的安全性和稳定性; 1.7 项目关键问题 1)角色之间的碰撞探测要比较准确; 2)游戏要拥有一定难度,不可过于简单,但又能够吸引用户,不可过于太难;3)游戏界面设计要有自己的风格,以达到吸引用户的效果; 4)游戏的交互性要足够好,使得玩家易于上手; 5)测试的次数要充足,保证游戏的正常运行和安全性。

c++飞机大战实训报告附带码

目录 1. 概述 (2) 实训项目简介 (2) 实训功能说明 (2) 基本功能 (2) 附加功能 (2) 2. 相关技术 (3) Windows定时器技术 (3) 透明贴图实现技术 (3) CObList链表 (4) 获取矩形区域 (4) 使用AfxMessageBox显示游戏过程中的提示信息 (4) 内存释放 (4) CImageList处理爆炸效果 (4) 对话框的应用 (4) 3. 总体设计与详细设计 (4) 系统模块划分 (4) 主要功能模块 (5) 系统对象类图 (5) 系统主程序活动图 (5) 系统部分流程图 (5) 4. 编码实现 (8) 绘制游戏背景位图程序 (8) 飞机大战游戏对象的绘制程序 (8) 飞机大战游戏对象战机位置的动态控制 (8) 飞机大战游戏对象之间的碰撞实现 (9) 游戏界面输出当前信息 (9) 5. 项目程序测试 (9) 战机移动及子弹发射模块测试 (9) 敌机及炸弹模块测试 (20) 爆炸模块测试 (20) 6. 实训中遇到的主要问题及解决方法 (10) 7. 实训体会 (11)

1. 概述 实训项目简介 本次实训项目是做一个飞机大战的游戏,应用MFC编程,完成一个界面简洁流畅、游戏方式简单,玩起来易于上手的桌面游戏。该飞机大战项目运用的主要技术即是MFC编程中的一些函数、链表思想以及贴图技术。 实训功能说明 基本功能 (1)设置一个战机具有一定的速度,通过键盘,方向键可控制战机的位置,空格键发射子弹。 (2)界面中敌机出现的位置,以及敌机炸弹的发射均为随机的,敌机与敌机炸弹均具有一定的速度,且随着关卡难度的增大,数量和速度均增加。 (3)对于随机产生的敌机和敌机炸弹,若超过矩形区域,则释放该对象。 (4)添加爆炸效果,包括战机子弹打中敌机爆炸、敌机炸弹打中战机爆炸、战机与敌机相撞爆炸以及战机子弹与敌机炸弹相撞爆炸四种爆炸效果。且爆炸发生后敌机、子弹、炸弹均消失,战机生命值减一。 附加功能 (1)为游戏界面添加了背景图片,并在战机发射子弹、战机击中敌机、敌机击中战机、以及战机敌机相撞时均添加了背景音效。 (2)为游戏设置了不同的关卡,每个关卡难度不同,敌机与敌机炸弹的速度随着关卡增大而加快,进入第二关以后敌机从上下方均会随机出现,且随机发射炸弹。 (3)第一关卡敌机从上方飞出,速度一定,战机每打掉一直敌机则增加一分,每积十分,则为战机增加一个生命值,当战机得分超过50分则可进入下一关;进入第二、三关时敌机速度加快,分别从上下两方飞出,此时战机每得分20、30分,才会增加一个生命值,得分超过100、150分则进入下一关、通关。 (4)在游戏界面输出当前游戏进行信息,包括当前得分、当前关卡以及击中敌机数量。 (5)增加了鼠标控制战机位置这一效果,战绩的位置随着鼠标的移动而移动,并且点击鼠标左键可使得战机发射子弹。 (6)实现了暂停游戏的功能,玩家可通过键盘上的‘Z’键,对游戏进行暂停。 (7)通过对话框的弹出可提示玩家是否查看游戏说明、是否进入下一关、是否重新开始等消息,使得玩家可自己选择。

c++实训报告---飞机大战

目录 1. 概述 (2) 1.1 实训项目简介 (2) 1.2 实训功能说明 (2) 1.2.1 基本功能 (2) 1.2.2 附加功能 (2) 2. 相关技术 (3) 2.1 Windows定时器技术 (3) 2.2 透明贴图实现技术 (3) 2.3 CObList链表 (4) 2.4获取矩形区域 (5) 2.5使用AfxMessageBox显示游戏过程中的提示信息 (5) 2.6内存释放 (5) 2.7 CImageList处理爆炸效果 (5) 2.8对话框的应用 (5) 3. 总体设计与详细设计 (6) 3.1 系统模块划分 (6) 3.2 主要功能模块 (7) 3.2.1 系统对象类图 (7) 3.2.2 系统主程序活动图 (8) 3.2.3 系统部分流程图 (8) 4. 编码实现 (11) 4.1 绘制游戏背景位图程序 (11) 4.2 飞机大战游戏对象的绘制程序 (12) 4.3 飞机大战游戏对象战机位置的动态控制 (14) 4.4 飞机大战游戏对象之间的碰撞实现 (16) 4.5 游戏界面输出当前信息 (18) 5. 项目程序测试 (19) 5.1战机移动及子弹发射模块测试 (19) 5.2 敌机及炸弹模块测试 (20) 5.3 爆炸模块测试 (20) 6. 实训中遇到的主要问题及解决方法 (20) 7. 实训体会 (20)

1. 概述 1.1 实训项目简介 本次实训项目是做一个飞机大战的游戏,应用MFC编程,完成一个界面简洁流畅、游戏方式简单,玩起来易于上手的桌面游戏。该飞机大战项目运用的主要技术即是MFC编程中的一些函数、链表思想以及贴图技术。 1.2 实训功能说明 1.2.1 基本功能 (1)设置一个战机具有一定的速度,通过键盘,方向键可控制战机的位置,空格键发射子弹。 (2)界面中敌机出现的位置,以及敌机炸弹的发射均为随机的,敌机与敌机炸弹均具有一定的速度,且随着关卡难度的增大,数量和速度均增加。 (3)对于随机产生的敌机和敌机炸弹,若超过矩形区域,则释放该对象。 (4)添加爆炸效果,包括战机子弹打中敌机爆炸、敌机炸弹打中战机爆炸、战机与敌机相撞爆炸以及战机子弹与敌机炸弹相撞爆炸四种爆炸效果。且爆炸发生后敌机、子弹、炸弹均消失,战机生命值减一。 1.2.2 附加功能 (1)为游戏界面添加了背景图片,并在战机发射子弹、战机击中敌机、敌机击中战机、以及战机敌机相撞时均添加了背景音效。 (2)为游戏设置了不同的关卡,每个关卡难度不同,敌机与敌机炸弹的速度随着关卡增大而加快,进入第二关以后敌机从上下方均会随机出现,且随机发射炸弹。 (3)第一关卡敌机从上方飞出,速度一定,战机每打掉一直敌机则增加一分,每积十分,则为战机增加一个生命值,当战机得分超过50分则可进入下一关;进入第二、三关时敌机速度加快,分别从上下两方飞出,此时战机每得分20、30分,才会增加一个生命值,得分超过100、150分则进入下一关、通关。 (4)在游戏界面输出当前游戏进行信息,包括当前得分、当前关卡以及击中敌机数量。 (5)增加了鼠标控制战机位置这一效果,战绩的位置随着鼠标的移动而移动,并且点击鼠标左键可使得战机发射子弹。 (6)实现了暂停游戏的功能,玩家可通过键盘上的‘Z’键,对游戏进行暂停。 (7)通过对话框的弹出可提示玩家是否查看游戏说明、是否进入下一关、是否重新开始等消息,使得玩家可自己选择。

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

实训报告 飞机大战游戏设计与开发 专业名称:软件工程11-2 学号:201101051723 姓名:王佳贺 信息科学与工程学院

二零一三年十一月 目录 1. 概述【一级标题,黑体,四号,加粗,顶头】错误!未定义书签。 2. 相关技术............................................................. 错误!未定义书签。 2.1 透明贴图函数(技术一的名称)............................................... 错误!未定义书签。 2.2 CObList链表(技术二的名称).................................................. 错误!未定义书签。 2.3获取矩形区域函数.......................................................................... 错误!未定义书签。 2.4添加爆炸效果函数.......................................................................... 错误!未定义书签。 2.5弹出对话框函数.............................................................................. 错误!未定义书签。 2.6字体的个性化输出函数.................................................................. 错误!未定义书签。 2.7鼠标键盘控制战机位置的函数...................................................... 错误!未定义书签。 2.8 延迟函数......................................................................................... 错误!未定义书签。 2.9设置定时器...................................................................................... 错误!未定义书签。 2.10双缓冲技术.................................................................................... 错误!未定义书签。 2.11 内存释放技术............................................................................... 错误!未定义书签。 3. 总体设计与详细设计 ........................................ 错误!未定义书签。 3.1 系统模块划分................................................................................. 错误!未定义书签。 3.2 主要功能模块................................................................................. 错误!未定义书签。 3.3 扩展功能设计思路......................................................................... 错误!未定义书签。 4. 编码实现............................................................. 错误!未定义书签。 4.1游戏初始创建.................................................................................. 错误!未定义书签。 4.2定时器.............................................................................................. 错误!未定义书签。 4.3背景设定.......................................................................................... 错误!未定义书签。 4.4键盘控制函数.................................................................................. 错误!未定义书签。 4.5文字显示函数.................................................................................. 错误!未定义书签。 4.6游戏对象进行碰撞测试和碰撞销毁,文字提示函数.................. 错误!未定义书签。 4.7选择下一关卡以及选择完成后的执行代码.................................. 错误!未定义书签。 4.8游戏结束代码.................................................................................. 错误!未定义书签。 4.9鼠标控制战机代码.......................................................................... 错误!未定义书签。 4.10重新开始游戏代码........................................................................ 错误!未定义书签。 5. 实训中遇到的主要问题及解决方法 ................ 错误!未定义书签。 6. 实训体会............................................................. 错误!未定义书签。

飞机大战游戏设计与实现

程序设计综合实践报告 姓名学号 班级项目名称 飞机大战游戏设计与实现 实习地点计算机实验室 实习时间 2015-12-9至2015-12 -19 实习成绩指导教师签字 信息科学与工程学院 2015年12月20日

目录 1. 概述?错误!未定义书签。 1.1 关卡设置?错误!未定义书签。 1.2 敌机设置.......................... 错误!未定义书签。 1.3 战机设置......................... 错误!未定义书签。 1.4 游戏设置.......................... 错误!未定义书签。2. 相关技术............................ 错误!未定义书签。 2.1 Windows定时器技术 (2) 2.2 双缓冲技术?错误!未定义书签。 2.3 获取矩形区域?2 3. 总体设计与详细设计?错误!未定义书签。 3.1 系统模块划分..................... 错误!未定义书签。 3.2 主要功能模块...................... 错误!未定义书签。 4. 编码实现?4 4.1 初始准备?4 4.2 战机对象?6 4.3敌机对象......................... 错误!未定义书签。 4.4 道具对象 (9) 4.5 主要内容?01 4.6 窗口显示信息...................... 错误!未定义书签。 5. 实训中遇到的主要问题及解决方法?20 5.1 产生中断及解决方案?02

5.2 图片闪烁问题及解决方案?20 6. 实训体会............................. 错误!未定义书签。

程序设计综合实践报告

程序设计综合实践报告 数学与系统科学学院 2015年11月6日

目录 1. 概述 (1) 2. 相关技术 (1) 2.1 数据链表 (1) 2.2 双缓冲 (1) 3. 总体设计与详细设计 (2) 3.1 系统模块划分 (2) 3.2 主要功能模块 (2) 4. 编码实现 (12) 5. 实训中遇到的主要问题及解决方法 (20) 6. 实训体会 (20)

1. 概述 项目:飞机大战 主要功能:本款基于MFC平台所制作的游戏,具有极大的休闲娱乐功能。玩家通过操纵我机,通过发射子弹机会敌机来积分,分数越高说明了玩家坚持的越长。游戏开始界面向玩家进行了游戏按键的功能说明,游戏中设置暂停按键,可以方便玩家继续游戏。游戏还自带无敌模式,以及我机大招,极大地提高了游戏的可玩性。 2. 相关技术 本程序主要运用了链表和双缓冲的技术。链表的应用方便了对数据成员的访问和处理,简化了代码,支持插入和移除表中任意位置上的节点;双缓冲主要用于图像的处理,在内存中重新绘图后复制到前台,同时禁止背景刷新,避免因图像刷新过于频繁导致画面出现闪烁现象。 2.1 数据链表 链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。使用链表结构可以充分利用计算机内存空间,实现灵活的内存动态管理。由于常规数组排列关联项目的方式可能不同于这些数据项目在记忆体或磁盘上顺序,数据的存取往往要在不同的排列顺序中转换,因此链表最大的优点是允许插入和移除表上任意位置上的节点。 在程序运行过程中,根据游戏对象的种类划分不同的链表,每个链表单一的存储一类数据,在进行处理、绘图时,通过对链表的遍历,实现对数据的访问,再根据所要实现的功能,对不同的对象做出不同的处理,对数据成员的插入和移除也变得轻松了许多。 2.2 双缓冲 在图形图象处理编程过程中,双缓冲是一种基本的技术。窗体在响应WM_PAINT消息的时候要进行复杂的图形处理,那么窗体在重绘时由于过频的刷新会引起闪烁现象。解决这一问题的有效方法就是双缓冲技术。因为窗体在刷新时,总要有一个擦除原来图象的过程OnEraseBkgnd,它利用背景色填充窗体绘图区,然后在调用新的绘图代码进行重绘,这样一擦一写造成了图象颜色的反差。当WM_PAINT的响应很频繁的时候,这种反差也就越发明显。于是我们就看到了闪烁现象。

飞机大战游戏 产品需求规格说明书

[键入文字] 飞机大战游戏 产品需求规格说明书 1

目录 0. 文档介绍 (1) 0.1文档目的 (1) 0.2文档范围 (1) 0.3读者对象 (1) 0.4参考文档 (1) 0.5术语与缩写解释 (1) 1. 产品介绍 (2) 2. 产品面向的用户群体 (2) 3. 产品应当遵循的标准或规范 (2) 4. 产品范围 (2) 5. 产品中的角色 (2) 6. 产品的功能性需求 (2) 6.0功能性需求分类 (2) 6.1游戏基本规则 (3) 6.1.1 飞机对战规则 (3) 6.2游戏特效 (3) 6.2.1 界面背景特效 (3) 6.2.2游戏对象特效 (4) 6.2.3 声音特效 (4) 6.2.4 文字提示 (4) 7. 产品的非功能性需求 (4) 7.1用户界面需求 (4) 7.2软硬件环境需求 (5) 7.3产品质量需求 (5) 附录B:需求确认 (6)

0. 文档介绍 0.1 文档目的 让系统设计人员了解飞机大战游戏的开发要求。 0.2 文档范围 本文主要包含飞机大战游戏的需求。包括游戏规则及界面特效的要求。 0.3 读者对象 系统设计人员 0.4 参考文档 《Windows游戏编程大师技巧》 0.5 术语与缩写解释

1. 产品介绍 飞机大战游戏作为PC中一款桌面游戏,界面简洁流畅、游戏方式简单,玩起来易于上手。 2. 产品面向的用户群体 面向休闲游戏的玩家,例如家庭、办公室人员等,使用人群广泛。 3. 产品应当遵循的标准或规范 本产品遵循Microsoft编程规范。 4. 产品范围 仅针对使用Microsoft Windows XP及以上版本操作系统,不必考虑低级版本的兼任性。 5. 产品中的角色 6. 产品的功能性需求 6.0 功能性需求分类

相关文档
最新文档