俄罗斯方块游戏的设计与实现_第1页
俄罗斯方块游戏的设计与实现_第2页
俄罗斯方块游戏的设计与实现_第3页
俄罗斯方块游戏的设计与实现_第4页
俄罗斯方块游戏的设计与实现_第5页
已阅读5页,还剩117页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

西北农林科技大学信息工程学院俄罗斯方块游戏设计课程论文 学 号 2009012842姓 名 岳继中专业班级 信管 091班指导教师 胡少军完成日期 2012-1-11俄罗斯方块游戏的设计与实现第 1 页目 录一、综合训练目的与要求 .11-1 训练目的 .11-2 训练要求 .1二、综合训练任务 .12-1 训练任务 .12-2 任务描述 .1三、总体设计 .23-1 运行环境 .23-2 游戏的总体设计思路: .23-3 游戏功能图: .23-4 游戏流程图 .33-5 类的关系图 .3四、详细 设计说明 .34-1 游戏的开始,结束,退出 .34-1-1、游戏的开始 .34-1-2 游戏的退出 .44-2 形状的随机产生 .44-2-1 形状的表示: .44-2-2 形状的随机产生 .44-2-3 形状随机旋转 n( n 开始按钮时,游戏开始进行。首先初始化游戏:调用 CRussia 类对象的中 m_russia.InitGame()操作,然后设置游戏的默认等级,游戏状态,游戏得分等;M_russia.InitGame()中的主要设置如下:m_board.ResetSize(width, height);m_currentShape.CreateRandomShape();m_nextShape.CreateRandomShape();InitShapePos();m_hasShape = true;m_score = 0;m_status = RS_NORMAL;其中界面实现是菜单操作,菜单项和响应事件完成。ID_START-开始-OnStart()4-1-2 游戏的退出当点击界面中的游戏退出按钮时,出发 OnQuit()函数,退出游戏整个界面。OnQuit()函数给系统发送窗口关闭的消息,用系统将窗口关闭。SendMessage(WM_CLOSE);4-2 形状的随机产生4-2-1 形状的表示:形状类封装了矩阵类对象,形状的旋转主要通过矩阵的旋转来完成,因此形状类中主要完成 7 种形状在矩阵上的表示,其用来存储矩阵的数据结构时数组,我们用整型数 0 和 1 来表示矩阵中方块的无和有,这样,7 种形状即可表示如下:1100110000000000正方形1000100011000000L 型0001000100110000反 L 型0011011000000000反 Z 型1100011000000000Z 型1111000000000000直线型0100111000000000反 T 型俄罗斯方块游戏的设计与实现5图 4-2-1 形状在矩阵中的表示4-2-2 形状的随机产生调用系统的随即数产生函数 random()*6,产生 06 这七个随机数,分别对应上述七种形状,然后用 switch 语句随机选择形状中的任意一个,即可完成形状的随机产生。4-2-3 形状随机旋转 n( n 4 )次考虑到游戏开始时要随机产生形状,为了使形状经过一定次数的旋转在下落,设计该函数。产生 04 的随机数,然后再循环中调用矩阵的旋转函数即可。4-3 形状的移动4-3-1 形状的移动形状的移动主要是通过移动矩阵实现的,在形状类中封装了存放形状的矩阵在底盘中的横坐标和纵坐标两个属性,通过改变坐标的大小,完成矩阵在底盘中的移动。其中,底盘以左上角定点为坐标原点,以水平向右为横轴正方向,以竖直向下为纵轴正方向。4-3-2 形状旋转、移动时的检测移动时的检测主要是检测方块是否到底以及方块左右移动时是否越界。1、检测方块是否落到底,其方法是:判断当前形状的矩阵所在地盘的位置上是否已经有方块。用两层循环遍历与小矩阵对应的地盘中的单元格,判断其是否为 1。若为 1,表明已经到底,需要取消上一步操作;否则没有落到底。2、检测当前形状是否越界的方法:将形状左移或者右移,判断其坐标是否超出地盘规定的范围,超过说明越界。越界时需要取消上一步操作。4-4 游戏等级的设置游戏等级的设置就是方块下落速度的设置。当游戏开始时,设置其默认速度,由于下落是用定时器实现的,因此控制其速度即改变时延的大小,时延越大,下落速度越慢;否则相反。开始游戏时默认时延为 500ms,和初级时延一样,中级时延为 400ms,高级时延为 300ms,每个等级都会从 0 级别开始,以后没升一级时延减少 20ms,直到游戏结束。界面中的游戏等级通过三个子菜单和三个响应函数实现,ID_LEVEL0-初级-OnLevel0()ID_LEVEL1-中级-OnLevel1()ID_LEVEL2-高级-OnLevel2()俄罗斯方块游戏的设计与实现64-5 游戏时满行的判断,清除判断满行:用两层循环遍历地盘中新结合的形状所在的行,如果全为 1,说明满行;满行删除:循环将满行的个单元格置 0,实现清除;4-6 删除满行后悬空方块的下移当满行被删除后,它们上边的方块都处于悬空状态,因此需要下移,下移实现的方法如下:将满行上一层的数据复制存放到当前被删除的行的各个单元格中,实现行复制。循环进行以上过程,直到上边没有方块,完成悬空方块的下移。4-7 形状与底盘的结合形状与地盘的结合,首先需要得到当前形状的信息,

温馨提示

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

评论

0/150

提交评论