?? wubird.frm
字號(hào):
Private Sub KeyPic_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
DoMouseDown Button, Shift, X, Y
End Sub
Private Sub KeyPic_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
DoMouseMove Button, Shift, X, Y
End Sub
Private Sub KeyPic_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
DoMouseUp Button, Shift, X, Y
End Sub
Private Sub mAbout_Click()
Form1.Enabled = False
Load Form2
Form2.Show
End Sub
Private Sub mExit_Click()
Unload Form1
End Sub
Private Sub mSound_Click()
mSound.Checked = Not mSound.Checked
SaveSetting "Screen Mates", "Wind-Ups", "Bird Sound", mSound.Checked
End Sub
Private Sub mWindItUp_Click()
If Not Broken Then
WindUpCount = WindUpCount + 40
WindUp = False
If WindUpCount > MAX_WINDUP Then
WindUpCount = 0
Broken = True
AnimatedHeadIndex = 0
Timer1.Interval = SLOW_SPEED2
StartMoving = False
HeadPic.MouseIcon = IconPic(0).MouseIcon
BodyPic.MouseIcon = IconPic(0).MouseIcon
BottomPic.MouseIcon = IconPic(0).MouseIcon
KeyPic.MouseIcon = IconPic(0).MouseIcon
Form1.MouseIcon = IconPic(0).MouseIcon
Else
KeyCount = 9
Timer1.Interval = NORMAL_SPEED
PlaySound ("WUBird0.wav")
End If
End If
End Sub
Private Sub Timer1_Timer()
If Broken Then
AnimatedHeadIndex = AnimatedHeadIndex + 1
HeadPic.Picture = Head(Val(Mid(AnimatedHead, AnimatedHeadIndex, 1))).Picture
HeadNo = Val(Mid(AnimatedHead, AnimatedHeadIndex, 1))
DoMakeIrregularForm
If AnimatedHeadIndex >= Len(AnimatedHead) Then
Broken = False
Timer1.Interval = 0
End If
ElseIf KeyCount > 0 Then
KeyCount = KeyCount - 1
If KeyCount <= 0 Then
If StartMoving Then
Timer1.Interval = 0
Else
DoSetSpeed
End If
End If
KeyNo = KeyNo + 1
If KeyNo > 6 Then
KeyNo = 0
End If
KeyPic.Picture = Key(KeyNo).Picture
DoMakeIrregularForm
ElseIf Not StartMoving And Not WindUp Then
LegsNo = LegsNo + 1
If Not StartMoving And Form1.Left <> -70 Then
Form1.Left = Form1.Left - 12
If Form1.Left < -70 Then
Form1.Left = -70
End If
End If
WindUpCount = WindUpCount - 1
If WindUpCount <= 0 Then
WindUpCount = 0
Timer1.Interval = 0
Else
DoSetSpeed
End If
If LegsNo > 10 Then
LegsNo = 0
PlaySound ("WUBird1.wav")
End If
BottomPic.Picture = Legs(LegsNo)
KeyNo = KeyNo - 1
If KeyNo < 0 Then
KeyNo = 6
End If
KeyPic.Picture = Key(KeyNo).Picture
DoMakeIrregularForm
End If
End Sub
Private Sub DoMakeIrregularForm()
DoSetHead
Region1 = CreatePolygonRgn(lpPoint(0), MaxPolygonPoints, 0)
DoSetBody
Region2 = CreatePolygonRgn(lpPoint(0), MaxPolygonPoints, 0)
CombineRgn Region1, Region1, Region2, RGN_OR
DeleteObject Region2
DoSetKey
Region2 = CreatePolygonRgn(lpPoint(0), MaxPolygonPoints, 0)
CombineRgn Region1, Region1, Region2, RGN_OR
DeleteObject Region2
If KeyNo = 0 Or KeyNo = 1 Or KeyNo = 6 Then
DoSetKeyHold1
Region2 = CreatePolygonRgn(lpPoint(0), MaxPolygonPoints, 0)
CombineRgn Region1, Region1, Region2, RGN_DIFF
DeleteObject Region2
DoSetKeyHold2
Region2 = CreatePolygonRgn(lpPoint(0), MaxPolygonPoints, 0)
CombineRgn Region1, Region1, Region2, RGN_DIFF
DeleteObject Region2
End If
DoSetBottom
Region2 = CreatePolygonRgn(lpPoint(0), MaxPolygonPoints, 0)
CombineRgn Region1, Region1, Region2, RGN_OR
DeleteObject Region2
DoSetBottomHold
Region2 = CreatePolygonRgn(lpPoint(0), MaxPolygonPoints, 0)
CombineRgn Region1, Region1, Region2, RGN_DIFF
DeleteObject Region2
SetWindowRgn hwnd, Region1, True
End Sub
Private Sub PlaySound(SoundFilename As String)
Dim Filename As String
If mSound.Checked Then
If Right(App.Path, 1) = "\" Then
Filename = App.Path + SoundFilename
Else
Filename = App.Path + "\" + SoundFilename
End If
If FileExists(Filename) Then
sndPlaySound Filename, SND_NODEFAULT + SND_ASYNC
End If
End If
End Sub
Function FileExists(Filename As String) As Boolean
Dim FileAttribute As Integer
On Error GoTo ErrorFileExist
FileAttribute = GetAttr(Filename)
FileExists = ((FileAttribute And vbDirectory) = 0)
GoTo ExitFileExist
ErrorFileExist:
FileExists = False
Resume ExitFileExist
ExitFileExist:
On Error GoTo 0
End Function
Private Sub DoMouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
StartMoving = True
If Broken Then
AnimatedHeadIndex = Len(AnimatedHead) - 3
Else
Timer1.Interval = 0
End If
WindUp = False
DifferenceX = X
DifferenceY = Y
HeadPic.MouseIcon = IconPic(1).MouseIcon
BodyPic.MouseIcon = IconPic(1).MouseIcon
BottomPic.MouseIcon = IconPic(1).MouseIcon
KeyPic.MouseIcon = IconPic(1).MouseIcon
Form1.MouseIcon = IconPic(1).MouseIcon
ElseIf Button = 2 Then
If StartMoving Then
Timer1.Interval = 0
mWindItUp_Click
WindUp = True
Else
If Broken Then
AnimatedHeadIndex = Len(AnimatedHead) - 3
End If
Form1.PopupMenu mPopupMenu
End If
End If
End Sub
Private Sub DoMouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
If StartMoving Then
Form1.Left = Form1.Left + (X - DifferenceX)
Form1.Top = Form1.Top + (Y - DifferenceY)
DoEvents
End If
End If
End Sub
Private Sub DoMouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If StartMoving And Button = 1 Then
WindUp = False
StartMoving = False
KeyCount = 0
HeadPic.MouseIcon = IconPic(0).MouseIcon
BodyPic.MouseIcon = IconPic(0).MouseIcon
BottomPic.MouseIcon = IconPic(0).MouseIcon
KeyPic.MouseIcon = IconPic(0).MouseIcon
Form1.MouseIcon = IconPic(0).MouseIcon
If WindUpCount > 0 Then
DoSetSpeed
PlaySound ("WUBird1.wav")
End If
End If
End Sub
Private Sub DoSetSpeed()
If WindUpCount > 70 Then
Timer1.Interval = NORMAL_SPEED
ElseIf WindUpCount > 30 Then
Timer1.Interval = SLOW_SPEED1
Else
Timer1.Interval = SLOW_SPEED2
End If
End Sub
Private Sub DoSetHead()
If HeadNo = 0 Then
lpPoint(0).X = 27
lpPoint(0).Y = 77
lpPoint(1).X = 27
lpPoint(1).Y = 75
lpPoint(2).X = 19
lpPoint(2).Y = 71
lpPoint(3).X = 12
lpPoint(3).Y = 71
lpPoint(4).X = 12
lpPoint(4).Y = 70
lpPoint(5).X = 14
lpPoint(5).Y = 68
lpPoint(6).X = 14
lpPoint(6).Y = 64
lpPoint(7).X = 15
lpPoint(7).Y = 62
lpPoint(8).X = 14
lpPoint(8).Y = 58
lpPoint(9).X = 16
lpPoint(9).Y = 54
lpPoint(10).X = 7
lpPoint(10).Y = 54
lpPoint(11).X = 6
lpPoint(11).Y = 53
lpPoint(12).X = 14
lpPoint(12).Y = 48
lpPoint(13).X = 14
lpPoint(13).Y = 45
lpPoint(14).X = 15
lpPoint(14).Y = 43
lpPoint(15).X = 17
lpPoint(15).Y = 39
lpPoint(16).X = 25
lpPoint(16).Y = 35
lpPoint(17).X = 31
lpPoint(17).Y = 32
lpPoint(18).X = 38
lpPoint(18).Y = 32
lpPoint(19).X = 40
lpPoint(19).Y = 34
lpPoint(20).X = 52
lpPoint(20).Y = 34
lpPoint(21).X = 57
lpPoint(21).Y = 37
lpPoint(22).X = 61
lpPoint(22).Y = 40
lpPoint(23).X = 63
lpPoint(23).Y = 42
lpPoint(24).X = 63
lpPoint(24).Y = 44
lpPoint(25).X = 61
lpPoint(25).Y = 46
lpPoint(26).X = 62
lpPoint(26).Y = 48
lpPoint(27).X = 65
lpPoint(27).Y = 52
lpPoint(28).X = 65
lpPoint(28).Y = 54
lpPoint(29).X = 69
lpPoint(29).Y = 61
lpPoint(30).X = 69
lpPoint(30).Y = 64
lpPoint(31).X = 68
lpPoint(31).Y = 66
lpPoint(32).X = 66
lpPoint(32).Y = 66
lpPoint(33).X = 67
lpPoint(33).Y = 68
lpPoint(34).X = 66
lpPoint(34).Y = 72
lpPoint(35).X = 65
lpPoint(35).Y = 73
lpPoint(36).X = 62
lpPoint(36).Y = 73
lpPoint(37).X = 58
lpPoint(37).Y = 70
lpPoint(38).X = 58
lpPoint(38).Y = 71
lpPoint(39).X = 57
lpPoint(39).Y = 73
lpPoint(40).X = 54
lpPoint(40).Y = 75
lpPoint(41).X = 43
lpPoint(41).Y = 75
lpPoint(42).X = 39
lpPoint(42).Y = 76
lpPoint(43).X = 39
lpPoint(43).Y = 77
lpPoint(44).X = 27
lpPoint(44).Y = 77
MaxPolygonPoints = 45
ElseIf HeadNo = 1 Then
lpPoint(0).X = 27
lpPoint(0).Y = 70
lpPoint(1).X = 27
lpPoint(1).Y = 68
lpPoint(2).X = 19
lpPoint(2).Y = 64
lpPoint(3).X = 12
lpPoint(3).Y = 64
lpPoint(4).X = 12
lpPoint(4).Y = 63
lpPoint(5).X = 14
lpPoint(5).Y = 61
lpPoint(6).X = 14
lpPoint(6).Y = 57
lpPoint(7).X = 15
lpPoint(7).Y = 55
lpPoint(8).X = 14
lpPoint(8).Y = 51
lpPoint(9).X = 16
lpPoint(9).Y = 47
lpPoint(10).X = 7
lpPoint(10).Y = 47
lpPoint(11).X = 6
lpPoint(11).Y = 46
lpPoint(12).X = 14
lpPoint(12).Y = 41
lpPoint(13).X = 14
lpPoint(13).Y = 38
lpPoint(14).X = 15
lpPoint(14).Y = 36
lpPoint(15).X = 17
lpPoint(15).Y = 32
lpPoint(16).X = 25
lpPoint(16).Y = 28
lpPoint(17).X = 31
lpPoint(17).Y = 25
lpPoint(18).X = 38
lpPoint(18).Y = 25
lpPoint(19).X = 40
lpPoint(19).Y = 27
lpPoint(20).X = 52
lpPoint(20).Y = 27
lpPoint(21).X = 57
lpPoint(21).Y = 30
lpPoint(22).X = 61
lpPoint(22).Y = 33
lpPoint(23).X = 63
lpPoint(23).Y = 35
lpPoint(24).X = 63
lpPoint(24).Y = 37
lpPoint(25).X = 61
lpPoint(25).Y = 39
lpPoint(26).X = 62
lpPoint(26).Y = 41
lpPoint(27).X = 65
lpPoint(27).Y = 45
lpPoint(28).X = 65
lpPoint(28).Y = 48
lpPoint(29).X = 69
lpPoint(29).Y = 54
lpPoint(30).X = 69
lpPoint(30).Y = 57
lpPoint(31).X = 68
lpPoint(31).Y = 59
lpPoint(32).X = 66
lpPoint(32).Y = 59
lpPoint(33).X = 67
lpPoint(33).Y = 61
lpPoint(34).X = 66
lpPoint(34).Y = 65
lpPoint(35).X = 65
lpPoint(35).Y = 66
lpPoint(36).X = 62
lpPoint(36).Y = 66
lpPoint(37).X = 58
lpPoint(37).Y = 63
lpPoint(38).X = 58
lpPoint(38).Y = 64
lpPoint(39).X = 57
lpPoint(39).Y = 66
lpPoint(40).X = 54
lpPoint(40).Y = 68
lpPoint(41).X = 43
lpPoint(41).Y = 68
lpPoint(42).X = 39
lpPoint(42).Y = 69
lpPoint(43).X = 39
lpPoint(43).Y = 70
lpPoint(44).X = 37
lpPoint(44).Y = 70
lpPoint(45).X = 37
lpPoint(45).Y = 77
lpPoint(46).X = 29
lpPoint(46).Y = 77
lpPoint(47).X = 29
lpPoint(47).Y = 70
MaxPolygonPoints = 48
ElseIf HeadNo = 2 Then
lpPoint(0).X = 27
lpPoint(0).Y = 67
lpPoint(1).X = 27
lpPoint(1).Y = 65
lpPoint(2).X = 19
lpPoint(2).Y = 61
lpPoint(3).X = 12
lpPoint(3).Y = 61
lpPoint(4).X = 12
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -