文档介绍:VC++项目开发实验报告
课题名称:基于MFC的俄罗斯方块游戏设计
姓名:
学号:
系别: 计算机学院
班级:
专业:
指导教师:
1 俄罗斯方块的游戏概述
游戏简介
俄罗斯方块游戏由莫斯科科学学院程序员Alexei Pajitnov设计,发行于1985年。他在玩过一个拼图游戏之后受到启发,从而制作了一个以Electronica 60为平台的俄罗斯方块的游戏。后来经瓦丁·格拉西莫夫移植到PC上,并且在莫斯科的电脑界传播。帕基特诺夫因此开始小有名气。
随后几年,俄罗斯方块开始登陆各大游戏主机。也曾因为版权问题引起过许多纠纷。但是拜亚洲盗版商人所赐,俄罗斯方块被引进到国内,如今已成为家喻户晓的著名游戏了。如今电子游戏业如此繁荣,作为电子游戏鼻祖的俄罗斯方块起到了决定性的作用。
如今俄罗斯方块已有多种版本,有的加了几种特殊形状,有的可以使用道具,还有连机的俄罗斯方块等等。但万变不离其宗,不管怎么变,游戏的基本规则是没有变化的。游戏玩法十分简单,如今已经成为一种公认的规则:屏幕顶部以随机顺序落下形状各异的方块,你要试图用它们拼成没有空隙的行列。坚持得时间越长,游戏速度也就变得越来越快,而游戏的吸引力就在于使你顶住碎块的进攻,支撑的时间比上一次更长。由于玩法简单,容易上手,如今仍是风靡全球,老少皆宜的一款游戏
游戏功能描述
最原始的俄罗斯方块由七个不同形状的碎块组成,而每个碎块又是由四个大小相同的方块构成。
游戏开始后方块会根据难度的不同而以不同的速度开始下降。在落地之前,玩家需要通过旋转方块使方块以最合适的形态下落,用它们拼成没有空隙的行列。如此便完成消行,使得游戏有更大的空间可以继续下去。如果方块累积达到游戏空间的顶层,游戏便失败而无法继续。
2 需求分析与概要设计
游戏开发基本策略
游戏区域由许多等面积的小方块构成,这些区域状态只有满或空两种。将空间以静态二维数组实现,并预先定义其状态值。满为1,空为0,以此来完成游戏地图区域的空间分配。
小方块的实现是由一个4*2的小数组表示,用四个存储单位空间存储当前下坠物的每一个子块的位置来对整个下坠物件的位置进行标识,每个存储空间的大小就是一个点的坐标。每个方块都有其对应的编号,编号按由上到下,由左到右的顺序编排。有了这些编号,方块的变换实现起来就方便多了。再由一个宏去标识下坠物的位置。
游戏进程需要定时器的驱动,所以很有必要在程序当中加入一个定时器机制。如此对游戏的开始,暂停,结束控制便能够得到实现。
游戏开始后便开始掉落方块,并且会在游戏区域上方出现下一个下坠物的形态,因此有随机物件产生这个操作。此时用户可根据需要来变换方块,向左或向右移动来调整方块位置,然后通过按下使方块加速下落。这就涉及到了四个主要操作。
当方块向左或向右移动时,需要判定方块是否达到了游戏区域的边界;当方块下落时需要判定方块是否到了游戏区域的底部,或是碰到了别的方块。这样游戏内部便引入众多相关函数。对这些函数进行实现和细化之前,需要对整个游戏运行期间的概要流程有所了解。
游戏流程图如下:
开始
消行操作
生成新的下坠物
将新的下坠物代替旧的下坠物
将旧的下坠物作为当前下坠物
到达底部
消行操作
到达顶部
游戏结束
游戏结束处理
下降一个单位
否
是
否
是
到达底部
结束
图2—1 系统流程图
俄罗斯方块的功能需求
程序的工作原理主要是在一个MFC工程中建立出各种函数并相互关联以及一些程序算法,并在一台PC机上实现俄罗斯方块游戏的运行。
游戏功能结构图如下所示:
主界面
游戏选项设置
游戏控制设置
背景颜色
游戏级别
游戏退出
游戏结束
游戏暂停
游戏开始
红色
绿色
灰色
第六级
第五级
第四级
第三级
第二级
第一级
方块颜色
红色方块
蓝色方块
黄色方块
紫色方块
绿色方块
图2—2 游戏功能结构图
由图中所示可以看出此方块游戏除了基本的开始、暂停、结束、退出功能外,还具有选择游戏级别、方块颜色、背景颜色的功能。具体这些功能的实现将会在后面做出详细的解说。
开发工具介绍
VC++的优点
VC++是由Microsoft公司制作,基于WINDOWS环境的一款编程软件。由于WINDOWS操作系统比起MS-DOS操作系统优越了许多。作为与之相搭配的编程软件自然也是功能非常强大,其最大的特点也就是可视化。不过在提供可视化的编程方式的同时,它采用了面向对象的程序设计方法,同传统的结构化程序设计方法相比,缩短了软件开发的周期,提高了软件的开发效率,使程序员可以更好地理解和管理庞大且复杂的程序。
V