- 17
- 0
- 约3.92万字
- 约 38页
- 2019-06-06 发布于江苏
- 举报
目录
1. 概述 错误!未定义书签。
2. 相关技术 错误!未定义书签。
2.1 碰撞检测 2
2.2 CObList 链表 2
2.3 设置定时器 2
2.4 背景滚动技术 2
2.5 内存释放技术 2
3. 总体设计与详细设计 错误!未定义书签。
3.1 系统模块划分 错误!未定义书签。
3.2 主要功能模块 错误!未定义书签。
4. 编码实现 6
5. 实训中遇到的主要问题及解决方法 49
6. 实训体会 50
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 系统模块划分
游戏系统
玩 游 关 敌
家 戏 卡 机
控
原创力文档

文档评论(0)