• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    用VB6設計有趣的動畫場景

    發布: 2007-7-14 20:28 | 作者: 佚名    | 來源: 網絡轉載     | 查看: 14次 | 進入軟件測試論壇討論

    領測軟件測試網   經?措娨暤呐笥岩欢〞⒁獾皆S多動畫片的場面制作得非常精美,那么能不能用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)
    '向右上方畫出隨機的直線
    .X1=mLine((CreateLines-1)/2).X2
    .X2=(mLine((CreateLines-1)/2).X2)+Int(Rnd*1000)
    .Y1=mLine((CreateLines-1)/2).Y2
    .Y2=(mLine((CreateLines-1)/2).Y2)-Int(Rnd*1000)
    .Visible=True
    End With
    End If
    DoEvents
    Sleep(50) '每隔0.05秒畫出并且顯示一個樹干
    Next
    ReDim Fruit(2 To Lines)
    '畫出每個樹枝結出的果子,但是并不馬上顯示,直到單擊了“結出果子”按鈕
    For CreateFruit=2 To Lines
    Set Fruit(CreateFruit)=Controls.Add("vb.shape","fruta"&CreateFruit)
    With Fruit(CreateFruit)
    .Width=200
    .Height=200 '結出果子的大小
    .Left=mLine(CreateFruit).X2-100
    .Top=mLine(CreateFruit).Y2-100 '結果位置
    .FillColor=RGB(255,0,0) '以紅色填充
    .FillStyle=0 '邊框類型
    .Shape=3 '圓形的的果子
    .ZOrder 0
    End With
    Next
    Evaluate=True '設置樹枝已經畫出標志
    ShoWApple=False '設置顯示果子標志
    Command2.Caption="顯示果子" '設置結果按鈕標題
    End Sub
    Private Sub Command2_Click() '結出果子按鈕按下
    On Error GoTo Erro
    If ShoWApple=False Then
    '如果果子沒有顯示,那么將它們全部顯示出來
    For Apple=LBound(Fruit) To UBound(Fruit)
    Fruit(Apple).Visible=True
    DoEvents
    Sleep (50) '每隔0.05秒顯示一個果子
    Next
    ShoWApple=True '重新設置顯示果子標志
    Command2.Caption="取消果子"
    Else
    '如果果子已經顯示,那么將它們全部隱藏
    For Apple=LBound(Fruit) To UBound(Fruit)
    Fruit(Apple).Visible=False
    Next
    ShoWApple=False 重新設置顯示果子標志
    Command2.Caption="顯示果子"
    End If
    Erro:
    If Err.Number=9 Then
    MsgBox "必須首先畫出數,才能結出果子!"
    End If
    End Sub
    Private Sub Form_Load()
    Me.Caption=App.Title '添加應用程序標題
    Me.Left=(Screen.Width-Me.Width)/2
    Me.Top=(Screen.Height-Me.Height)/2 '窗體具中
    Evaluate=False
    ShoWApple=False
    End Sub
    Private Sub Text1_Validate(Cancel As Boolean)
    ‘驗證樹枝數量是否為0或者1
    If Text1.Text="" Or Text1.Text=1 Then
    Cancel=True
    MsgBox "必須輸入樹枝的數量!而且要大于1",vbOKOnly,"Error"
    End If
    End Sub
    Private Sub Form_Unload(Cancel As Integer)
    End
    End Sub '代碼結束 

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>