用VB6設(shè)計(jì)有趣的動(dòng)畫(huà)場(chǎng)景
編程原理經(jīng)??措娨暤呐笥岩欢〞?huì)注意到許多動(dòng)畫(huà)片的場(chǎng)面制作得非常精美,那么能不能用VB6設(shè)計(jì)類(lèi)似的場(chǎng)面呢,答案是肯定的,下面的代碼可以慢慢的畫(huà)出隨機(jī)形狀、可以設(shè)定樹(shù)枝密度的“樹(shù)”,并且可以在這棵樹(shù)上慢慢
編程原理
經(jīng)??措娨暤呐笥岩欢〞?huì)注意到許多動(dòng)畫(huà)片的場(chǎng)面制作得非常精美,那么能不能用VB6設(shè)計(jì)類(lèi)似的場(chǎng)面呢,答案是肯定的,下面的代碼可以慢慢的畫(huà)出隨機(jī)形狀、可以設(shè)定樹(shù)枝密度的“樹(shù)”,并且可以在這棵樹(shù)上慢慢的“結(jié)”出指定數(shù)量的紅色的“果子”——非常的有趣。
我們可以用適當(dāng)寬度的line控件分別在窗體上畫(huà)出“樹(shù)干和樹(shù)枝”,然后用shape控件畫(huà)出圓圓的大小適當(dāng)?shù)摹肮印?,并放在“?shù)枝”的末梢。這兩個(gè)控件的顏色和大小都可以自由設(shè)置。在下面的代碼中,也將展示VB6的“無(wú)中生有”動(dòng)態(tài)創(chuàng)建控件數(shù)組的新技術(shù)。
編程實(shí)踐
啟動(dòng)VB6,建立一個(gè)標(biāo)準(zhǔn)exe工程,添加兩個(gè)命令按鈕COMMAND1(CAPTION"畫(huà)出一棵樹(shù)"),COMMAND2(CAPTION"顯示果子"),一個(gè)標(biāo)簽控件(CAPTION"樹(shù)枝密度:"),和一個(gè)文本控件TEXT1(用來(lái)設(shè)置樹(shù)枝數(shù)量),調(diào)整上述控件到適當(dāng)位置,雙擊窗體,寫(xiě)入以下代碼:
```vb
Option Explicit
Dim CreateLines As Integer
Dim Lines As Integer
Dim mLine() As Line ' 注釋?zhuān)簶?shù)枝
Dim Fruit() As Shape ' 注釋?zhuān)汗?/p>
Dim CreateFruit As Integer
Dim Apple As Integer
Dim Evaluate As Boolean ' 注釋?zhuān)菏欠褚呀?jīng)畫(huà)出了數(shù)
Dim Clear As Integer
Dim Eraser As Integer
Dim ShoWApple As Boolean ' 注釋?zhuān)菏欠褚呀?jīng)顯示了果子
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) ' 注釋?zhuān)憾〞r(shí)器
Private Sub Command1_Click() ' 注釋?zhuān)寒?huà)出樹(shù)枝
If Evaluate True Then ' 注釋?zhuān)喝绻呀?jīng)畫(huà)出了樹(shù)枝
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 ' 注釋?zhuān)耗敲磳⑺鼈兦謇?/p>
' 注釋?zhuān)悍駝t直接按照TEXT1中設(shè)置的數(shù)量畫(huà)出樹(shù)枝
' 樹(shù)枝數(shù)量
Lines Text1.Text
ReDim mLine(1 To Lines) ' 注釋?zhuān)憾x樹(shù)枝數(shù)組
Set mLine(1) ("","MotherLine") ' 注釋?zhuān)撼跏蓟瘶?shù)干
With mLine(1)
.X1 ' 注釋?zhuān)簱?jù)窗體中間
.X2
.Y1
.Y2 ' 注釋?zhuān)焊叨缺却绑w小1000單位
.Visible True ' 注釋?zhuān)嚎梢?jiàn)
.BorderWidth 8 ' 注釋?zhuān)簶?shù)干寬度
.BorderColor vbBlack ' 注釋?zhuān)阂院谏畛?/p>
End With
' 注釋?zhuān)洪_(kāi)始畫(huà)出樹(shù)枝
For CreateLines 2 To Lines
Set mLine(CreateLines) ("","Linea" CreateLines)
If CreateLines Mod 2 0 Then ' 注釋?zhuān)合蜃笊戏疆?huà)出隨機(jī)的直線(樹(shù)枝)
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 ' 注釋?zhuān)阂跃G色填充
.BorderWidth 3 ' 注釋?zhuān)簩挾葹?
End With
Else
```