VB 俄罗斯方块的设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、课程设计的目的与要求 (2)

1.1、俄罗斯方块的要求 (2)

1.2、俄罗斯方块设计的目的 (3)

二、题目分析 (4)

2.1、概要设计 (4)

2.2、详细设计 (4)

游戏区模块的设计 (5)

控制区模块的设计 (5)

三、设计思路 (6)

3.1、系统流程的总设计 (6)

3.2、游戏区模块的设计 (7)

3.2.1、Bitblt函数参数的意义与用法 (7)

3.2.2、俄罗斯方块的旋转 (8)

3.2.3、如何实现方自动消除满行的方块 (9)

3.2.4、随机从 7 个方块中选择一个 (10)

3.2.5、设置每个模块的测试计 (11)

3.3、整体游戏程序的结构设计 (11)

3.4、程序设计 (13)

四、调试过程 (14)

4.1、设计游戏界面 (14)

4.2、完善与改善游戏界面 (15)

五、运行结果 (18)

六、课程设计总结 (20)

附录 (22)

一、课程设计的目的与要求

1.1、俄罗斯方块的要求

俄罗斯方块的基本规则是移动、旋转和摆放游戏自动输出的各种方块,使之排列成完整的一行或多行并且消除得分,俄罗斯方块游戏是一款适合大众的游戏软件,它适合不同年龄的人玩。本软件要实现的功能如下:

(1)游戏区:玩家可以在游戏区中堆积方块,并能够在游戏过程中随时了解得分情况。

(2)游戏控制:玩家可以通过游戏控制功能来选择开始新的一局游戏,暂停或退出游戏。

(3)级别设置:玩家可以根据自己的需要自行设定游戏的开始级别,级别越高,游戏的速度越快,难度越大。

游戏规则如下:

(1)电脑随机产生4个小方块组成的不同形状的游戏块,从上往下降落。

(2)游戏面板的宽度为12(以小方块的宽度为单位),高度为22,当一行被12个小方块填满时,此行便会被自动消除。

(3)利用键盘上的左右箭头键可以控制游戏块的左移与右移。

(4)利用键盘上的向上箭头键可以控制游戏块的旋转。

(5)利用键盘上的向下箭头键可以控制游戏块的快速下落。

(6)当游戏块无法下落时,游戏结束。

(7)在屏幕上可以显示将出现的下一个游戏块。

1.2、俄罗斯方块设计的目的

无可争议,《俄罗斯方块》是有史以来最伟大的游戏之一。它是永恒的娱乐经典,但它实际上又和那些传统的经典娱乐方式不同,因为它的本质是电子化的,所以它的确属于现代产物。《俄罗斯方块》举世闻名的游戏性,在该游戏新鲜出炉时就显得非常直观。某些与坠落的玩具碎片和它们的形状有关的东西,使得哪怕新手也会很自然地企图把它们排列起来,并加以适当组合,就好似《俄罗斯方块》触动了我们某些内在的感官,使得哪怕是我们当中最杂乱无章的人也要把事情整理妥当。

在曾经发布过的所有游戏中,《俄罗斯方块》还被认为是仅有的一个能够真正吸引广泛人群的作品。某些批评家也许会声称,《俄罗斯方块》要比过去二十年间出现的任何东西都要浪费人们的时间。至于我们,则要欣然提名它为GameSpot评选出的历史上最伟大游戏之一。

为了怀念经典,也为了能够给大多的计算机用户在工作之余找到一个休闲、娱乐的一个方式,我们小组开始着手用VB语言开发一个经典的俄罗斯方块游戏。

关键字:游戏,模块,多媒体。

二、题目分析

2.1、概要设计

设计一款游戏,必然少不了流程图,与整个开发的逻辑。流程图如图1所示:

图1 俄罗斯方块的设计流程图

2.2、详细设计

游戏区模块的设计

游戏区的流程设计如图2所示:

图2 游戏区模块的设计流程控制区模块的设计

游戏区的流程设计如图3所示:

图3游戏区模块的设计流程

三、设计思路

结合游戏区与控制去模板的设计流程,可以得出系统总流程,如图4所示:

3.1、系统流程的总设计

3.2、游戏区模块的设计

游戏区模块总体上划分为三个模块,分别为游戏开始模块、游戏退出模块、帮助模块。一个游戏必须是要有游戏规则的。其中的帮助就是教会我的玩法,以及其中的规则

3.2.1、Bitblt函数参数的意义与用法

函数功能:该函数对指定的源设备环境区域中的像素进行位块(bit_block)转换,以传送到目标设备环境。

函数原型:BOOL BitBlt(HDC hdcDest,int nXDest,int nYDest,int nWidth,int nHeight,HDC hdcSrc,int nXSrc,int nYSrc,DWORD dwRop);

参数:dcDest:指向目标设备环境的句柄。

nXDest:指定目标矩形区域左上角的X轴逻辑坐标。

nYDest:指定目标矩形区域左上角的Y轴逻辑坐标。

nWidth:指定源和目标矩形区域的逻辑宽度。

nHeight:指定源和目标矩形区域的逻辑高度。

hdcSrc:指向源设备环境的句柄。

nXSrc:指定源矩形区域左上角的X轴逻辑坐标。

nYSrc:指定源矩形区域左上角的Y轴逻辑坐标。

光栅操作代码:SrcCopy:将源矩形区域直接拷贝到目标矩形区域。

dwRop:指定光栅操作代码。这些代码将定义源矩形区域的颜色数据,如何与目标矩形区域的颜色数据组合以完成最后的

颜色。

3.2.2、俄罗斯方块的旋转

俄罗斯方块的旋转主要将方块的位置加以变换得到的,例如上述范例,长条型有两中样式,根据小方块的编号变动来实现整个造型的旋转,比如:

If Judge_Rotate Then

intRotate = intRotate + 1

Select Case Type_Now

Case 1 '长条

If intRotate Mod 2 = 1 Then

picPictureNow.Picture = LoadResPicture(12, 0)

picPictureNow.Top = picPictureNow.Top + 3

picPictureNow.Left = Adjust_Left

Else

picPictureNow.Picture = LoadResPicture(11, 0)

picPictureNow.Top = Adjust_Top

picPictureNow.Left = picPictureNow.Left + 1

End If

相关文档
最新文档