自娱自乐──用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,到这里就大功告成了!运行看看,不要不相信自己,这就是你亲手做的俄罗斯方块游戏!第三方的许多控件都是很棒的,取其精华,灵活运用,你会发现编程是如此轻松有趣!