微信公众号 
图码生活

每天发布有五花八门的文章,各种有趣的知识等,期待您的订阅与参与
电脑报 1992-2001 十年文章全集
电脑报 1992-2001 十年文章全集
包含从 1992 年 - 2001 年间,两万余篇期刊文章,查询最少输入两个字符
随便看看
读取中
读取中
标题用VB编写趣味撞球程序
栏目软件世界
作者云飞
发布2001年3期
  一只红色的小球在箱子中不停地弹跳,你要适当地移动下面的板子挡住,别让它掉下来。相信许多人都玩过这样的游戏,有没有想过自己编个来玩呢?
  界面设计:新建一个工程,Form1的Caption属性设为“趣味撞球”,在Form1上放上一个图片框控件Picture1,一个图形控件Shape1,将Shape属性设为3,FillStyle属性设为0,FillColor属性设为“&H000000FF&”,即红色,Shape1显示为红色实心圆作小球,一个直线控件Line1,其BorderWidth属性设为3,当做板子;一个定时器Timer1,其Interval属性设为10,Enabled属性设为False,两个标签Label1 和Label2,其Caption属性分别为“得分”和“0”,再放两个命令按钮Command1和Command2,其Caption属性分别为“开始”和“退出”,设计好的界面如


  程序代码:
  Option Explicit
  Dim x_step As Integer
  Dim y_step As Integer
  Private Sub Command1_Click()
  Timer1.Enabled = Not Timer1.Enabled
  '启动或停止定时器
  If Command1.Caption = “暂停” Then
   Command1.Caption = “继续”
  Else
   Command1.Caption = “暂停”
  End If
  End Sub
  Private Sub Command2_Click()
  End
  End Sub
  Private Sub Form_Load()
  x_step = 200
  '设置小球运动的速度
  y_step = 200
  End Sub
  Private Sub Picture1_KeyDownKeyCode As Integer, Shift As Integer
  Select Case KeyCode
  Case 37'如果按下左箭头,使板子向左移动
  If Line1.X1 <= 0 Then
   Line1.X1 = 0
   Line1.X2 = 2000
  Else
   Line1.X1 = Line1.X1 - 100
   Line1.X2 = Line1.X2 - 100
  End If
  Case 39'如果按下右箭头,使板子向右移动
  If Line1.X2 >= Picture1.Width Then
   Line1.X2 = Picture1.Width
   Line1.X1 = Picture1.Width - 2000
  Else
   Line1.X1 = Line1.X1 + 100
   Line1.X2 = Line1.X2 + 100
  End If
  End Select
  End Sub
  Private Sub Timer1_Timer()
  If Shape1.Top <= 0 Then Shape1.Top = 0:y_step = -y_step
  '如果小球出了上边界便弹回
  If Shape1.Left <= 0 Then Shape1.Left = 0:x_step = -x_step
  '如果小球出了左边界便弹回
  If Shape1.Left >= Picture1.Width - Shape1.Width Then Shape1.Left = Picture1.Width - Shape1.Width: x_step = -x_step
  '如果小球出了右边界便弹回
  If Shape1.Top >= Line1.Y1 - Shape1.Height And Shape1.Left >= Line1.X1 And Shape1.Left <= Line1.X2 Then
  '如果小球撞在板子上,便弹回
   Shape1.Top = Line1.Y1 - Shape1.Height
   y_step = -y_step* 1.01'速度增加
   x_step = x_step* 1.01
   Label2.Caption = Val(Label2.Caption) + 1
  End If
  Shape1.Top = Shape1.Top + y_step
  '使小球移动
  Shape1.Left = Shape1.Left + x_step
  If Shape1.Top >= Picture1.Height - Shape1.Height Then
   MsgBox “你输了!”
   Timer1.Enabled = False
   Command1.Caption = “开始”
   Shape1.Top = 1000
   Label2.Caption = 0
  End If
  End Sub
  按“F5”键运行,小球来回跳动起来,你招架得住吗?有意思吧,快试试呀!
  知识点:这个程序的主要控件是Shape(形状控件)和Line(直线控件),这两个控件都是简单形状的控件。
  Shape控件:主要属性有Shape、FillStyle、FillColor、Top和Left。Shape是用来设置图形样式的,有矩形、正方形、椭圆形、圆形、带圆角的矩形和正方形等等;FillStyle用来设置填充的样式,如设为“1”,即Transparent,便为一个透明即空心的图形,而“6”即为方格填充,还可以设置为斜线、水平线、垂直线填充;FillColor用来设置填充的颜色;Top和Left属性用来设置Shape控件的位置,在该例中,用来控制小球的移动和判断是否达到了反弹的条件。
  Line控件:主要属性有Style、BorderWidth和X1、X2、Y1、Y2。我们可以通过BorderWidth来设置直线的宽度,默认为“1”,最小为“1”;Style主要是用来设置直线的样式,如虚线、点划线等等,注意:只有当BorderWidth设置为“1”时,才能选择不同的直线样式,BorderWidth大于1时,只能画出普通直线。X1、X2、Y1、Y2是用来设定直线的位置和长度的,在本段程序中,就是通过这几个属性来控制直线的移动的。
  好了,这一期“看实例学编程”就讲到这里,下一次,我们将介绍用“PictureClip”控件编写有趣的拼图程序,请大家留意。