程序设计文档_第1页
程序设计文档_第2页
程序设计文档_第3页
程序设计文档_第4页
程序设计文档_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品文档 1欢迎下载 蛇吞食程序设计蛇吞食程序设计 摘要 本游戏设计采用 MFC 编程 对键盘消息 定时器消息 图形界面等三 个主要模块进行设计 可视化强 本游戏初始编写比较基础 程序代码相对简 单 此游戏具有可靠性 安全性以及低成本等特点 关键词 键盘消息 定时器消息 图形界面 一 功能模块的划分一 功能模块的划分 整个界面由一个长宽为 540 540 的矩形框 此为蛇的活动范围和食物出现的范 围 分数栏等构成 精品文档 2欢迎下载 键盘消息键盘消息 按动键盘 使蛇的方向进行改变 定时器消息定时器消息 整个程序只用到一个定时器 在 OnStart 里对定时器进行设定 SetTimer 1 100 NULL 在 OnTimer 中对蛇和食物进行处理 第一关 将 block 设置为 1 当分数超过 10 分蛇不能通过墙壁 第二关 将 block 设置为 2 设置障碍物并且蛇不能碰到墙壁 但有最低分数为 20 分 图形界面图形界面 位图处理 在 OnDraw 里面画出蛇和食物的图片 一张蛇图有四 个方向的四条蛇 改变 x org 横坐标 y org 纵坐标 t org 宽度 b org 长度 t org1 蛇图显示区域的横坐标 的值来控制蛇不同方向的运 动 用 rand 来随机产生食物的图片 在执行 Invalidate 时自动显示位 图的不同状态 菜单功能模块 Set 包含 Start Gameover First Second Start 启动定时器 Gameover 关掉定时器 并且退出游戏界面 First 和 Second 分别选择游戏级别 Help 是游戏的说明 二 程序流程二 程序流程 程序流程程序流程 1 程序执行 Ondraw 函数部分 显示出蛇朝右的图片和食物图片 2 选择级别 First 或者 Second 此时程序会调用 OnFirst 或 OnSecond 改变 block 的值 若选择的 First block 将赋值为 1 然后选择 Start 程序调用 OnStart 函数 将 m nStart 赋值为 1 程 序将执行第一关的代码 蛇能够穿墙而过 如果分数超过 10 分 即 score 10 游戏将自动升级 蛇不能穿墙而过 碰到墙壁蛇将死亡 若选择的 Second block 将赋值为 2 然后选择 Start 程序调用 OnStart 函数 将 m nStart 赋值为 1 程序将执行第二关的代码 蛇不能够穿墙而过 而且在活动范围内有障碍物 但有最低分 20 分 若碰到墙壁或障碍物蛇将死亡 精品文档 3欢迎下载 3 在选择 Start 后 程序自动启动定时器 执行 OnTimer 部分的代码 若 block 1 执行第一关的代码 蛇可以分别在四个方向上运动 score 自动加分直到超过 10 则改变代码蛇不能撞墙 若撞墙则 KillTimer 并将 score 置为 0 4 在执行 OnTimer 部分的代码时 要不断执行 Invalidate 进行刷 新 然后调用 Ondraw 画出不同状态下的图形 5 选择 GameOver 选项 调用 OnEnd 函数 使 m nstart 0 KillTimer 并且退出游戏 程序流程图程序流程图 精品文档 4欢迎下载 先执行一次 Ondraw 在Start中选择 First或Second 选择First选择Second 执行OnFirst 函 数 使block 1 执行OnSecond 函 数 使block 2 选择Start执行 OnStart 函数使 m nStart 1并启动 定时器 调用Invalidate 时又执行 Ondraw 执行OnTimer 中的部分 在block 1时执行第 一关部分的代码 并score 10部分执 行另一部分代码 在block 2时执行第 二关部分的代码 并增加图形 选择Game over KillTimer 并退 出游戏 撞到墙 此次游戏 结束 撞到墙或障碍物 此次游戏结束 三 三 概要设计概要设计 1 1 编写目的编写目的 概要设计为 蛇吞食 客户端的开发提供基本的设计基础 背景 蛇吞食是源于贪吃蛇开发的一种变种的基础游戏 主要针对手机小游戏 精品文档 5欢迎下载 进行开发 蛇吞食 主要目的在于供人娱乐和消遣 此游戏开发代码简单 2 2 参考资料参考资料 Visual c 与面向对象程序设计教程 MFC 程序开发大全 游戏编程精粹 6 3 3 基本设计概念和处理流程基本设计概念和处理流程 本游戏主要由键盘消息 定时器消息和图形界面三部分功能模块构成 定时器 又分为第一关模块和第二关模块 图形界面又分为位图处理模块和菜单功能模 块 精品文档 6欢迎下载 下图为各功能模块的关系图 用户运行游戏 图像界面 第一关模块 第二关模块 位图处理模块 菜单功能模块 定时器消息 键盘消息 4 4 结构结构 功 能 模 块 子 功 能 模 块 标识符功能描述与其它各模块的关系 键 盘 消 息 无 OnKeyDown 改变蛇图的方向 在图形界面的 Ondraw 函 数中在一张位图中截取 不同方向的蛇图 定第 OnTimer 蛇可以分别在四个不断对图像进行刷新然 精品文档 7欢迎下载 一 关 模 块 方向上运动 score 自动加分直到超过 10 则改变代码蛇 不能撞墙 若撞墙 则 KillTimer 并 将 score 置为 0 后蛇自由的在活动范围 内移动 在此会涉及到 键盘消息改变蛇移动的 方向 也会调用 Ondraw 进行图像的 处理 时 器 消 息 第 二 关 模 块 OnTimer 蛇可以分别在四个 方向上运动 限制 蛇的活动范围 不断对图像进行刷新然 后蛇自由的在活动范围 内移动 在此会涉及到 键盘消息改变蛇移动的 方向 也会调用 Ondraw 进行图像的 处理 位 图 处 理 模 块 Ondraw 画出可视化界面 矩形框 蛇图 食 物图片 显示分数 等 在 OnTimer 里面进行刷 新时自动调用 Ondraw 达到显示不 同位置和方向的蛇图 不同位置的食物图 在 玩游戏过程中的分数和 最后的总分数 图 形 界 面 菜 单 功 能 模 块 Set Help Set 里面选择级别和 开始 Help 选择 Introduce 查看游戏 的操作说明 精品文档 8欢迎下载 5 5 功能需求与程序的关系功能需求与程序的关系 各项功能需求的实现同各块程序的分配关系 OnDra w OnInval idate OnIntro duce OnFirst OnSecon d OnStar t OnEnd OnKey down OnTim er 键盘消 息 定时器 消息 位图处 理模块 菜单功 能模块 6 6 人工处理人工处理 本游戏只由用户按动 控制蛇运动方向 防止碰到墙或障碍物即可 尚未解决的问题 精品文档 9欢迎下载 7 7 用户接口用户接口 用户接口的设计按照友好性 更多的采用图形界面 规范操作命令和方法 用户界面 菜单结构 移动提示 弹出弹入图符 警告提示的信息 帮助的提 示 键盘消息 用户只需要按动上下左右键控制蛇方向即可 定时器消息 用户只需在菜单中选择需要的关卡 就可启动后台程序 并通过 观察蛇的运动速度便可掌握蛇自由移动的大致时间 图形界面 用户通过菜单选择启动后台程序 蛇碰到墙壁或障碍物 则会出现 信息提示 通过视图玩游戏 界面简单 从而操作也简单 在玩游戏的过程中 可以看到自己当前的分数 游戏结束时可以看到总分 8 8 出错信息出错信息 用户在玩游戏过程中按到错误的键盘会显示信息提示 对不起 按键错误 请重新选择 蛇撞墙或障碍物 会提示 笨蛋 蛇撞墙了 总结总结 在此次课程设计中 编写程序遇到了不少麻烦 比如怎样使蛇自由的活动 起来 怎样使用定时器等 幸亏有老师和同学的帮助 才能将这些问题一一的 解决 我感觉在编写程序的时候要先规划好先做哪一步 再做哪一步 在每编 写好一个模块后要及时的进行调试 以保证程序在整个过程中的正确性 在做 此次课程设计之前就先定好了题材 做出粗略的规划 第一步 建立好工程 处理位图 第二步 编写键盘消息的程序 与此同时配合位图进行处理 第三 步 处理定时器的消息并且能使位图活动起来 第四步 处理图形界面的菜单 精品文档 10欢迎下载 选项 编写游戏时要有绝对好的耐心 在此期间会出现各种各样意想不到的困 难 此时绝对不能被困难打到 要仔细分析虚心向老师和同学请教并且查阅相 关的资料 进而才能很好的解决问题 在本次课

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论