用VB6設計有趣的動畫場景
編程原理經常看電視的朋友一定會注意到許多動畫片的場面制作得非常精美,那么能不能用VB6設計類似的場面呢,答案是肯定的,下面的代碼可以慢慢的畫出隨機形狀、可以設定樹枝密度的“樹”,并且可以在這棵樹上慢慢
編程原理
經常看電視的朋友一定會注意到許多動畫片的場面制作得非常精美,那么能不能用VB6設計類似的場面呢,答案是肯定的,下面的代碼可以慢慢的畫出隨機形狀、可以設定樹枝密度的“樹”,并且可以在這棵樹上慢慢的“結”出指定數量的紅色的“果子”——非常的有趣。
我們可以用適當寬度的line控件分別在窗體上畫出“樹干和樹枝”,然后用shape控件畫出圓圓的大小適當的“果子”,并放在“樹枝”的末梢。這兩個控件的顏色和大小都可以自由設置。在下面的代碼中,也將展示VB6的“無中生有”動態創建控件數組的新技術。
編程實踐
啟動VB6,建立一個標準exe工程,添加兩個命令按鈕COMMAND1(CAPTION"畫出一棵樹"),COMMAND2(CAPTION"顯示果子"),一個標簽控件(CAPTION"樹枝密度:"),和一個文本控件TEXT1(用來設置樹枝數量),調整上述控件到適當位置,雙擊窗體,寫入以下代碼:
```vb
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
("MotherLine")
For Eraser 2 To UBound(mLine)
("linea" Eraser)
("fruta" Eraser)
Next
End If ' 注釋:那么將它們清理
' 注釋:否則直接按照TEXT1中設置的數量畫出樹枝
' 樹枝數量
Lines Text1.Text
ReDim mLine(1 To Lines) ' 注釋:定義樹枝數組
Set mLine(1) ("","MotherLine") ' 注釋:初始化樹干
With mLine(1)
.X1 ' 注釋:據窗體中間
.X2
.Y1
.Y2 ' 注釋:高度比窗體小1000單位
.Visible True ' 注釋:可見
.BorderWidth 8 ' 注釋:樹干寬度
.BorderColor vbBlack ' 注釋:以黑色填充
End With
' 注釋:開始畫出樹枝
For CreateLines 2 To Lines
Set mLine(CreateLines) ("","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
```