回 帖 发 新 帖 刷新版面

主题:[原创]漫天飞雪——控件数组的应用

VERSION 5.00
Begin VB.Form Form1 
   Caption         =   "Form1"
   ClientHeight    =   7530
   ClientLeft      =   60
   ClientTop       =   450
   ClientWidth     =   9480
   LinkTopic       =   "Form1"
   ScaleHeight     =   7530
   ScaleWidth      =   9480
   StartUpPosition =   3  '窗口缺省
   Begin VB.Timer Timer1 
      Left            =   4200
      Top             =   3480
   End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
    Dim Snow(1000, 2)
    Const Amounty = 200                            '雪花数量
    
Private Sub Form_Click()
    End
End Sub

Private Sub Form_Load()
    Form1.Show
    Me.BackColor = RGB(40, 40, 80)                  '背景色
    Randomize
    For i = 1 To Amounty
        Snow(i, 0) = Int(Rnd * Width)        '水平位置
        Snow(i, 1) = Int(Rnd * Height)       '垂直位置
        Snow(i, 2) = (10 + (Rnd * 20))               '速度
    Next i
    Timer1.Interval = 50
End Sub

Private Sub Timer1_Timer()
    For i = 1 To Amounty                    '一朵
        OldX = Snow(i, 0)
        OldY = Snow(i, 1)
        Snow(i, 1) = Snow(i, 1) + Snow(i, 2)  '垂直动一格
        If Snow(i, 1) > Form1.Height Then       '到底了,重新产生一朵
            Snow(i, 1) = 0
            Snow(i, 2) = 5 + (Rnd * 30)
            Snow(i, 0) = Int(Rnd * Form1.Width)
        End If
        Coloury = 8 * (Snow(i, 2) - 10) + 60 '越远越慢颜色越深
        DrawWidth = Snow(i, 2) / 2
        PSet (OldX, OldY), Me.BackColor
        PSet (Snow(i, 0), Snow(i, 1)), RGB(Coloury, Coloury, Coloury)
    Next i
End Sub

回复列表 (共5个回复)

沙发

有没有帅哥阳伞的飞雪代码,研究下

板凳

我的雪没有使用它的那个,我使用“形状”的目的是分清前后层。
这个雪花的前身代码,我找找看,十有八九业和伞老弟的雪不一样。

3 楼

不好意思,连原来的代码前身(人家没有使用形状,而是使用PSet作的,开销很小)的代码,我也丢了。不好意思。

4 楼

首次来到这个论坛,向大家学习。。。

5 楼

欢迎“爱vb”来到本论坛,请多多发言交流!

我来回复

您尚未登录,请登录后再回复。点此登录或注册