自娱自乐──用VB做俄罗斯方块游戏
IT商界
所用工具:Visual Basic 6.0
要求:准备好现成的TetrisBox控件(可到http://www.mf100.com/download.asp?id=84下载,压缩包中包括了以下代码的示例),了解其基本使用方法,利用一些简单的编程知识。
目的:利用控件,编写一个俄罗斯方块游戏,为业余时间增添乐趣,而且非常容易上手。我们用TetrisBox控件,很轻松就可以搞定一个属于自己的俄罗斯方块,下面就给大家细细讲解制作过程。
第一步:首先启动Visual Basic 6.0(以下简称VB 6.0),新建一个窗口,对窗口属性进行一些必要的设置。
① 用鼠标点击窗体,在窗体的属性栏中(如图1)设置Form1窗体的相关属性;
②修改Caption属性值为“我的俄罗斯方块”(当然,你也可以设置成你喜欢的其他名字);
③修改BorderStyle属性为“1-Fixed Single”;
④修改KeyPreview属性为True。
第二步:向Form1窗体中添加控件,并设置各个控件的属性。
①在控件工具栏中单击右键,选择“部件”,在弹出的窗口中点击“浏览”,找到TetrisBox控件,载入它;把它添加到Form1窗体中,你可以设置BackColor的属性为你喜欢的颜色;
提示:TetrisBox控件的高、宽比例是按比例固定的,不能顺意修改,但你可以通过修改CellSize属性来修改控件的大小,其值必须在10~30之间。
②如图2,添加其他控件;
③添加一个Label控件和一个Text控件,分别命名为lblSpeedTip和txtSpeed。设置lblSpeedTip的Caption属性为“速度:”,并设置AutoSize属性为True;设置txtSpeed的Text值为“1000”。txtSpeed是用来设置游戏的速度,其值必须在50~1200之间,值越小游戏速度越快;
④添加一个PictureBox控件,命名为picNext,设置AutoSize属性为True。这个控件是用来显示下一个将出现的方块;
⑤添加四个Label控件,AutoSize属性全设置为True;将四个控件分别命名为lblCountTip、lblCount、lblMarkTip和lblMark;Caption属性分别设置为“方块数:”、0、“您的成绩”、0。这些控件用来显示已出现的方块数和你已消掉的层数;
⑥添加两个CommandButton控件,命名为cmdStart和cmdPause,Caption属性设置为“开始”和“暂停”。
提示:在给控件命名时,最好给控件命名为一个有代表意义的名字。通常是命名格式为:控件类别的前缀+控件功能的形容单词。养成给控件正确命名的习惯,将会提高你的效率,特别是在复杂的程序中。
第三步:接下来,打开代码窗口我们就将开始编写实现功能的代码。
①在窗体的KeyDown事件中加入以下代码:
Select Case KeyCode
Case vbKeyLeft
TetrisBox1.MoveLeft
Case vbKeyRight
TetrisBox1.MoveRight
Case vbKeyDown
TetrisBox1.MoveDown
Case vbKeyUp
TetrisBox1.Rotate
End Select
②在按钮控件cmdStart的Click事件中输入代码:
TetrisBox1.Speed = txtSpeed.Text
TetrisBox1.ClearBox
TetrisBox1.StartGame
txtSpeed.Enabled = False
cmdStart.Enabled = False
cmdPause.Enabled = True
OK!这时候,我们就可以开始游戏了。按F5运行试一试。接下来,我们还要写一些代码,以实现更多的功能。
③在按钮控件cmdPause的Click事件中输入代码,用于实现游戏的暂停:
If TetrisBox1.Playing Then
TetrisBox1.PauseGame (True)
cmdPause.Caption = “继续”
Else
TetrisBox1.PauseGame (False)
cmdPause.Caption = “暂停”
End If
④在TetrisBox控件的Lines事件中输入下面代码,实现计分功能:
lblMark.Caption = Str(Val(lblMark.Caption) + iNumberOfLines)
⑤在TetrisBox控件的NewPiece事件中输入下面代码,实现统计落下方块的数目和显示下一块将要落下的方块:
lblCount.Caption = Str(Val(lblCount.Caption) + 1)
Set picNext.Picture = TetrisBox1.PieceBitmap(iNextPieceType)
OK,到这里就大功告成了!运行看看,不要不相信自己,这就是你亲手做的俄罗斯方块游戏!第三方的许多控件都是很棒的,取其精华,灵活运用,你会发现编程是如此轻松有趣!

