当前位置:编程学习 > VB >>

用VB6设计有趣的动画场景

 

 

   经常看电视的朋友一定会注意到许多动画片的场面制作得非常精美,那么能不能用VB6设计类似的场面呢,答案是肯定的,下面的代码可以慢慢的画出随机形状、可以设定树枝密度的“树”,并且可以在这棵树上慢慢的“结”出指定数量的红色的“果子”——非常的有趣。

  (一)编程原理

  我们可以用适当宽度的line控件分别在窗体上画出“树干和树枝”,然后用shape控件画出圆圆的大小适当的“果子”,并放在“树枝”的末梢。这两个控件的颜色和大小都可以自由设置。在下面的代码中,也将展示VB6的“无中生有”动态创建控件数组的新技术。

  (二)编程实践

  启动VB6,建立一个标准exe工程,添加两个命令按钮COMMAND1(CAPTION=“画出一棵树”),COMMAND2(CAPTION=“显示果子”),一个标签控件(CAPTION=“树枝密度:”),和一个文本控件TEXT1(用来设置树枝数量),调整上述控件到适当位置,双击窗体,写入以下代码:

  Option Explicit

  Dim CreateLines As Integer

  Dim Lines As Integer

  Dim mLine() As Line 注释:树枝

  Dim Fruit() As Shape 注释:果子

  Dim CreateFruit As Integer

  Dim Apple As Integer

  Dim Evaluate As Boolean 注释:是否已经画出了数

  Dim Clear As Integer

  Dim Eraser As Integer

  Dim ShoWApple As Boolean 注释:是否已经显示了果子

  Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) 注释:定时器

  Private Sub Command1_Click() 注释:画出树枝

  If Evaluate=True Then 注释:如果已经画出了树枝

  For Clear=2 To UBound(mLine)

  Set mLine(Clear)=Nothing

  Set Fruit(Clear)=Nothing

  Next

  Controls.Remove("MotherLine")

  For Eraser=2 To UBound(mLine)

  Controls.Remove("linea" & Eraser)

  Controls.Remove("fruta" & Eraser)

  Next

  End If 注释:那么将它们清理

  注释:否则直接按照TEXT1中设置的数量画出树枝

  注释:树枝数量

  Lines=Text1.Text

  ReDim mLine(1 To Lines) 注释:定义树枝数组

  Set mLine(1)=Controls.Add("vb.line","MotherLine")

  注释:初始化树干

  With mLine(1)

  .X1=Form1.ScaleWidth/2

  .X2=Form1.ScaleWidth/2 注释:据窗体中间

  .Y1=Form1.ScaleHeight

  .Y2=Form1.ScaleHeight-1000 注释:高度比窗体小1000单位

  .Visible=True 注释:可见

  .BorderWidth=8 注释:树干宽度8

  .BorderColor=vbBlack 注释:以黑色填充

  End With

  注释:开始画出树枝

  For CreateLines=2 To Lines

  Set mLine(CreateLines)=Controls.Add("Vb.line","Linea"&CreateLines)

  If CreateLines Mod 2=0 Then

  注释:向左上方画出随机的直线(树枝)

  With mLine(CreateLines)

  .X1=mLine(CreateLines/2).X2

  .X2=(mLine(CreateLines/2).X2)-Int(Rnd*1000)

  .Y1=mLine(CreateLines/2).Y2

  .Y2=mLine(CreateLines/2).Y2)-Int(Rnd*1000)

  .Visible=True

  .BorderColor=vbGreen 注释:以绿色填充

  .BorderWidth=3 注释:宽度为3

  End With

  Else

  With mLine(CreateLines)

  注释:向右上

补充:软件开发 , Vb ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,