俄罗斯方块课程设计2.doc

上传人:bao****ty 文档编号:145016945 上传时间:2020-09-15 格式:DOC 页数:16 大小:98.50KB
返回 下载 相关 举报
俄罗斯方块课程设计2.doc_第1页
第1页 / 共16页
俄罗斯方块课程设计2.doc_第2页
第2页 / 共16页
俄罗斯方块课程设计2.doc_第3页
第3页 / 共16页
俄罗斯方块课程设计2.doc_第4页
第4页 / 共16页
俄罗斯方块课程设计2.doc_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《俄罗斯方块课程设计2.doc》由会员分享,可在线阅读,更多相关《俄罗斯方块课程设计2.doc(16页珍藏版)》请在金锄头文库上搜索。

1、 课程设计报告题目介绍:“俄罗斯方块”是一款非常经典,而且很受欢迎的风靡全球的电视游戏机和掌上游戏机游戏,玩家既能感受到游戏中的乐趣,也能提供一个展现自己高超技艺的场所。此游戏有很多变种,但大体玩法相同。本题目要求编制俄罗斯方块的计算机版本。题目要求:当按“开始”键时,游戏开始,期间玩家可以选择“暂停”和“继续”。方块可以在一定的范围内上下左右移动,而且可以根据玩家的指令转动方向,以更好的进行方块之间的组合。当每一行被方块填满时则会自动消去一行,多行都被方块填满时则都消去,同时消去的行数越多,则分数越高。一旦方块达到顶端则游戏自动结束。而且玩家可以根据自身的水平,选择游戏的难度。难度越高,速度

2、越快;难度越低,速度越慢。解题方案:本题涉及到VB中的很多块知识使用的模块:数组,变量的命名,菜单编辑器,绘图,键盘事件处理,定时器控制,多模块程序设计,文本文件的读写等。主要用到的控件有:command控件,image控件,picture控件,label控件,timer控件,text控件,windows media player控件等等主要实现的功能: 1.可以灵活控制方块在图形框中运动。 2.游戏过程中方块可以自由旋转。 3.当某一行的方块排列满时,将自动将这一行方块消除,然后将上面所有方块向下移动,可以支持连续消行。 4.游戏前可以选择游戏的速度和游戏的等级,游戏速度既为方块下落速度,游

3、戏等级为初始游戏时在基层随机生成一定行数的无规律方块,生成的行数由你来选择,每行至少产生5个以上的无规律方块,这样增加了游戏难度,对于游戏高手来说,无疑不是一个新的挑战。 5.游戏的得分支持积分,并且按照公式: 得分 = 原来分数+ 100 * (2 同时消除的行数-1) 这样,你同一时间消除的行数越多,你的得分也就越高,当游戏积分到了一定时可以自动升级,这个升级指速度升级主要步骤为以下9个方面: (1)游戏界面的设计。 (2)俄罗斯方块的造型。 (3)俄罗斯方块的旋转。 (4)俄罗斯方块的运动情况(包括向左,向右和向下)。 (5)俄罗斯方块的自动消行功能。 (6)游戏级别的自由选择。 (7)

4、游戏速度的自由选择。 (8)游戏得分的计算。 (9)游戏菜单选项的设计及功能实现。分析及大概设计:方块的造型在旋转的时候存在一个公式,当然首先要判断是否满足旋转的要求,以上是一个长条型由横着变成竖立状态的旋转,我们以它的造型中的第三个小方块n(3)为中心旋转,这样,在开始运动的时候,长条形要发生旋转最少要运动到第三行,才能由横着变成竖立状态,游戏区图形框中第三行的第一个方块的编号为20,所以长条造型的第一个小方块的编号n(0)必须要大于20。同样,长条型方块在下落到底部的时候也有限制。如果长条下落到最后一行也将无法由横着变成竖立状态。如何实现方块的运动和自动消除满行的方块:我们的这个俄罗斯方块

5、游戏主要是利用command控件的visible属性完成效果的,其实在游戏区图形框可以看成是由许多的command小方块组成,方块运动的过程就是造型里方块显示或者隐藏,就像现在的霓虹灯效果一样,由时钟控件控制visible属性改变的速度,上一层的消失,下一层的显示,这样,从视觉效果可以看到方块的下落运动效果。方块在下落的过程中会自动判断每一行方块的visible属性,如果全部为true时,就会将这一行小方块的visible属性全部变成false,在将上面的小方块向下移动,利用for语句进行循环判断,将所有这样情况的行改变小方块visible属性。连续消行:当有多行同时出现这样情况时使用递归调用

6、,实现连续消行。游戏速度和游戏级别自由选择游戏速度选择:就是改变时钟控件的频率,我们在菜单中添加了选择速度的功能,还有添加了考验功能,将欲览窗中的方块造型隐藏,给玩家提高了难度,如果你不愿意接受考验也可以点击显示还原成原来状态。游戏级别的自由选择是让用户选择游戏开始时候,游戏区底部出现一定行数的随机方块,同样给玩家增加了难度游戏得分的计算和游戏菜单的编辑:游戏得分的计算主要是根据消除的行数来决定的,当然每一次同时消除的行数不一样,每一行的得分也不一样,如果你每次消除的行数为1,则最后得分是100分,如果同时消除2行,则最后得分是300分,同时消除3行,得分为700分,同时消除4行,得分为150

7、0分,这由公式:得分 = 原来分数+ 100 * (2 同时消除的行数-1)。效果极其存在问题:游戏自身已经可以运行,可以带来游戏的轻松及其快感,可是界面显得粗糙,缺乏美感,而且就游戏菜单编辑器方面得进行改进心得:此次对俄罗斯方块的VB程序进行编辑,更加对这个游戏的设计思路以及运行程序得到了解,而且从中学到很多VB的知识,比如怎样对菜单编辑器进行设置,怎样设计产生两个甚至更多的窗体,对一些控件的应用以及数组的应用也有了更深的了解。 VB程序:定义产生方块的数组以及消除行数的数组: Private n(3), m(3) As Integer Private situation, situatio

8、n2, linenum, t As Integer 为了产生方块,定义使各个小方块可见和不可见的过程: Private Sub hidefang(a As Integer) Select Case a Case 0 cmdfang(n(0).Visible = False cmdfang(n(1).Visible = False cmdfang(n(2).Visible = False cmdfang(n(3).Visible = False Case 1 cmdfangnext(m(0).Visible = False cmdfangnext(m(1).Visible = False cmd

9、fangnext(m(2).Visible = False cmdfangnext(m(3).Visible = False End SelectEnd SubPrivate Sub showfang(a As Integer) Select CaseCase 0 cmdfang(n(0).Visible = True cmdfang(n(1).Visible = True cmdfang(n(2).Visible = True cmdfang(n(3).Visible = True Case 1 cmdfangnext(m(0).Visible = True cmdfangnext(m(1)

10、.Visible = True cmdfangnext(m(2).Visible = True cmdfangnext(m(3).Visible = True End SelectEnd Sub实现消除一行(实现连续消行,用递归): Private Sub clearline() For i = 190 To 10 Step -10 If cmdfang(i).Visible = True And _ cmdfang(i + 1).Visible = True And _ cmdfang(i + 2).Visible = True And _ cmdfang(i + 3).Visible =

11、True And _ cmdfang(i + 4).Visible = True And _ cmdfang(i + 5).Visible = True And _ cmdfang(i + 6).Visible = True And _ cmdfang(i + 7).Visible = True And _ cmdfang(i + 8).Visible = True And _ cmdfang(i + 9).Visible = True Then For j = i + 4 To i Step -1 t = 1 cmdfang(j).Visible = False cmdfang(2 * i

12、+ 9 - j).Visible = False For k = 1 To 4000 DoEvents Next t = 0 Next linenum = linenum + 1 For j = i - 1 To 0 Step -1 If cmdfang(j).Visible = True Then cmdfang(j).Visible = False cmdfang(j + 10).Visible = True End If Next clearline End If NextEnd Sub定义方块能否下降,左移和右移: Private Function downable() As Boolean If n(0) 190 And n(1) 190 And n(2) 190 And n(3) 190 Then If cmdfang(n(0) + 10).Visible = False And _ cmdfang(n(1) + 10).Visible = False And _ cmdfang(n(2) +

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号