俄罗斯方块怎么做(要思想) - 爱问答

(爱问答)

俄罗斯方块怎么做(要思想)

具体怎么是想给个思想,不要只给源代码,告诉我思想,听说要哪个数组什么的,请问要用数组吗,有什么用俄罗斯方块游戏设计的主要步骤为以下10个方面:
(1)游戏界面的设计。
(2)俄罗斯方块的造型。
(3)俄罗斯方块的旋转。
(4)俄罗斯方块的运动况(包括向左,向右和向下)。
(5)俄罗斯方块的自动消行功能。
(6)游戏级别的自由选择。
(7)游戏速度的自由选择。
(8)游戏得分的计算。
(9)游戏菜单选项的设计及功能实现。
(10)游戏的背景音乐及特效。
2.4运用的控件和主要对象
我们在设计过程中主要用到的控件有:command控件,image控件,picture控件,label控件,timer控件,text控件,windows media player控件等等。
2.5主要实现的功能
我们开发的俄罗斯方块游戏,主要实现了以下几种功能:
1.可以灵活控制方块在图形框中运动。
2.游戏过程中方块可以自由旋转。
3.当某一行的方块排列满时,将自动将这一行方块消除,然后将上面所有方块向下移动,可以支持连续消行。
4.游戏前可以选择游戏的速度和游戏的等级,游戏速度既为方块下落速度,游戏等级为初始游戏时在基层随机生成一定行数的无规律方块,生成的行数由你来选择,每行至少产生5个以上的无规律方块,这样增加了游戏难度,对于游戏高手来说,无疑不是一个新的挑战。
5.游戏的得分支持积分,并且按照公式
得分 = 原来分数+ 100 * (2 ^ 同时消除的行数-1)
       这样,你同一时间消除的行数越多,你的得分也就越高,当游戏积分到了一定时可以自动升级,这个升级指速度升级。
     6.游戏中提供了一个漂亮的场景和动听的音乐,给你带来无限激
2.6开发人员
由于这次课程设计所选的题目太复杂,而时间又比较紧张,指导老师建议和同学分工完成。我们小组成员包括组长孙磊周,副组长邹海星,此游戏由我们两个人共同开发而成。
正文
3.1游戏设计的具体实现
在我们两个人共同努力下,此次设计,终于能够圆满完成。由于时间的紧促,在设计中,也许会有一些考虑不周之处,但其功能已经能够满足大多用户的需求,相信假以时日,一定能做出一个更经典,更完美的俄罗斯方块游戏,下面我们将对每一步的具体如何实现展示给大家。
3.1.1游戏界面的设计和背景音乐及特效的实现
俄罗斯方块游戏主要由两个界面构成,登陆界面和开始游戏界面,在登陆界面中我们可以首先看到圣诞节的晚上梅花的场景,梅花从窗体顶部做函数曲线的下落运动,在窗体中定义一个Image控件组,在通用中定义梅花X坐标变量动态数组,Y坐标变量动态数组,步距X的变量动态数组,步距Y的变量动态数组,以及振幅变量动态数组。然后在窗体form_load中可以定义梅花的数量,利用随机函数产生随机的梅花坐标,步距和振幅,Image控件在运行时候就调用梅花图片,Image控件就可以由时钟控件控制下落速度,可以自由调节,梅花按snow(i).Left = xp(i) + am(i) * Sin(dx(i))函数在做纵向的正玄函数轨迹运动,竖直方向上为自由下落运动,,有am(i)来控制梅花的左右移动振幅。因此,我们就可以看到一个梅花在空中自由舞的画面了。
背景画面是用photoshop软件处理的漂亮图案,原本画面中的动画效果都是由Image控件制作的,还有点击进入游戏的按钮是由Label控件实现的,因为Image控件没有置前置后功能,不能将下雪的场景体现完整性,所以将这些图案全部放在背景上,不影响雪花飘落的效果,当点击画面的时候一样可以进入游戏界面。
游戏的背景音乐是由一段代码调用系统播放器Windows Player播放背景音乐,由于本次设计主要是针对游戏如何设计的,所以在这里就不对播放背景音乐的功能做介绍了。
3.1.2俄罗斯方块的造型
相信朋友们都玩过俄罗斯方块,对这个游戏的玩法和方块形状都比较熟悉。我们这个游戏只选择了最基本的7中造型,包括长条型,正方型,正S型,反S型,正7型,反7型,T型。如果需要我们可以添加更多的造型。将游戏界面的游戏区图片框分割成10*20的小块,每个小块放置一个command控件,预览区图片框按同样比例分割成4*4的小块,同样有command控件构成,我们可以把预览区图片框看作是从游戏区图片框中选取的一个部分,游戏区的小方块编号和欲览区编号如下图:
0 1 2 3 4 5 6 7 8 9
… … … … … … … … … …
… … … … … … … … … …
90 91 92 93 94 95 96 97 98 99
3 4 5 6
13 14 15 16
23 24 25 26
33 34 35 36
           游戏区编号                 欲览区编号                                                          
利用Select将方块的7中造型列出,比如长条型的设计,在欲览区中分别有3.4.5.6和5.15.25.35四个方块构成两中形态,用数组为:                              
m(0) = 3: m(1) = 4: m(2) = 5: m(3) = 6: situation2 = 0
m(0) = 5: m(1) = 15: m(2) = 25: m(3) = 35: situation2 = 1
将它的形状编号为0和1,在后面方便调用,其他的方块造型同样的方法。
3.1.3俄罗斯方块的旋转
     俄罗斯方块的旋转主要将方块的位置加以变换得到的,例如上述范例,长条型有两中样式,根据小方块的编号变动来实现整个造型的旋转,比如:
If n(0) - 18 >= 2 And n(3) + 9 <= 198 Then              
            If cmdfang(n(0) - 18).Visible = False And _
cmdfang(n(1) - 9).Visible = False And _
               cmdfang(n(3) + 9).Visible = False Then
                hidefang 0
                n(0) = n(0) - 18
                n(1) = n(1) - 9
                n(3) = n(3) + 9
                showfang 0
                situation = 1
            End If
        End If
方块的造型在旋转的时候存在一个公式,当然首先要判断是否满足旋转的要求,以上是一个长条型由横着变成竖立状态的旋转,我们以它的造型中的第三个小方块n(3)为中心旋转,这样,在开始运动的时候,长条形要发生旋转最少要运动到第三行,才能由横着变成竖立状态,游戏区图形框中第三行的第一个方块的编号为20,所以长条造型的第一个小方块的编号n(0)必须要大于20。同样,长条型方块在下落到底部的时候也有限制。如果长条下落到最后一行也将无法由横着变成竖立状态。
3.1.4如何实现方块的运动和自动消除满行的方块
我们的这个俄罗斯方块游戏主要是利用command控件的visible属性完成效果的,其实在游戏区图形框可以看成是由许多的command小方块组成,方块运动的过程就是造型里方块显示或者隐藏,就像现在的霓虹灯效果一样,由时钟控件控制visible属性改变的速度,上一层的消失,下一层的显示,这样,从视觉效果可以看到方块的下落运动效果。
方块在下落的过程中会自动判断每一行方块的visible属性,如果全部为true时,就会将这一行小方块的visible属性全部变成false,在将上面的小方块向下移动,利用for语句进行循环判断,将所有这样情况的行改变小方块visible属性。当有多行同时出现这样情况时使用递归调用,实现连续消行。具体程序代码如下:
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 = 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 + 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
    Next
3.1.5游戏速度和游戏级别自由选择
游戏速度的自由选择无非就是改变时钟控件的频率,我们在菜单中添加了选择速度的功能,还有添加了考验功能,将欲览窗中的方块造型隐藏,给玩家提高了难度,如果你不愿意接受考验也可以点击显示还原成原来状态。
游戏级别的自由选择是让用户选择游戏开始时候,游戏区底部出现一定行数的随机方块,同样给玩家增加了难度,功能代码如下:
For i = 19 To 20 - Val(txthard.Text) Step -1     
            For j = i * 10 To i * 10 + 9
                If Rnd >= 0.5 Then cmdfang(j).Visible = True
            Next
        Next
可以根据你选择的难度系数在底层的每一行随机产生超过半数(即5个以上)以上的小方块,这样适合喜欢高难度的玩家。
3.1.6游戏得分的计算和游戏菜单的编辑
游戏得分的计算主要是根据消除的行数来决定的,当然每一次同时消除的行数不一样,每一行的得分也不一样,如果你每次消除的行数为1,则最后得分是100分,如果同时消除2行,则最后得分是300分,同时消除3行,得分为700分,同时消除4行,得分为1500分,这由公式:得分 = 原来分数+ 100 * (2 ^ 同时消除的行数-1)。
游戏的编辑,读者可以参照下面的功能介绍。
3.2 游戏功能的介绍
文件-------开始:开始游戏。
         继续:继续游戏。
         暂停:暂时停止游戏,点击继续的时候可以继续游戏。
         退出:退出游戏。
设置-------选择游戏级别。
         选择游戏速度。
考验-------显示:显示欲览去方块。
         隐藏:隐藏欲览去方块。
帮助-------操作提示以及版本信息和作者资料。





用户界面具体如图:
          
           图—登陆界面                         图—游戏界面 
        
         图—菜单编辑界面                        图—游戏帮助界面 
有关说明
经过两个多星期的设计和开发,俄罗斯方块游戏已经成功。其功能基本符合用户需求,能够完成游戏的控制,方块的变换以及消层等功能。并提供游戏设置,对于一些技术性比较过硬的玩家,可以调游戏级别、以及游戏速度,使得玩家能够充分的发挥竞技游戏的特色,可以不断的挑战自我,挑战极限。

相关标签:俄罗斯方块罗斯

下一篇:2048俄罗斯方块版怎么玩2048俄罗斯方块版游戏详解

上一篇:俄罗斯方块手机版下载

热门标签:
我的世界 LOL 绝地求生 王者荣耀 吃鸡 英雄联盟 GTA 荒野行动 使命召唤 穿越火线 魔兽世界 网游 植物大战僵尸 造梦西游 逆战 排位 qq飞车 阴阳师 楚留香 斗地主 坦克世界 守望先锋 星际战甲 蜀门手游 300英雄
最新更新:
原神恢复如初解密-原神恢复如初任务攻略 原神万叶配队-原神万叶阵容搭配 原神4.0水主命座-原神4.0水主技能 原神娜维娅武器-原神娜维娅技能怎么用 原神芙卡洛斯水神什么时候出-原神芙卡洛斯水神命座 原神角色强度排行-原神林尼等级突破材料 原神角色强度排行-原神林尼天赋材料 原神fes在哪里买票-原神fes什么时候开票 原神林尼值得抽吗-原神林尼技能介绍 原神4.1版本什么时候上线-原神4.1版本是几月几号 光遇有友节任务怎么做-光遇有友节任务攻略 逆水寒手游一曲阳关怎么做-逆水寒手游一曲阳关任务 逆水寒手游宋辽贺俊杰任务怎么做-逆水寒手游宋辽贺俊杰任务攻略 逆水寒春山笑奇遇攻略-逆水寒春山笑奇遇触发不了 逆水寒手游金镯疑案攻略-逆水寒手游攻略