飞机大战实训报告.pdfVIP

  • 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)

1亿VIP精品文档

相关文档