【VB开源代码栏目提醒】:网学会员--在 VB开源代码编辑为广大网友搜集整理了:3Dstarfield_MainForm.frm绩等信息,祝愿广大网友取得需要的信息,参考学习。
VERSION 5.00
Begin VB.Form Form1
BackColor = &H00000000&
BorderStyle = 0 'None
Caption = "Form1"
ClientHeight = 7200
ClientLeft = 0
ClientTop = 0
ClientWidth = 9600
DrawWidth = 5
FillColor = &H00FFFFFF&
FillStyle = 0 'Solid
KeyPreview = -1 'True
LinkTopic = "Form1"
ScaleHeight = 480
ScaleMode = 3 'Pixel
ScaleWidth = 640
ShowInTaskbar = 0 'False
StartUpPosition = 3 '窗口缺省
WindowState = 2 'Maximized
Begin VB.Timer Timer1
Interval = 10
Left = 3165
Top = 480
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Private Type Stars
X As Double
Y As Integer
AddX As Integer
AddY As Integer
End Type
Private Star(1000) As Stars
Private Accelarate As Boolean
Private Declare Function SetPixel Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, ByVal crColor As Long) As Long
Private W As Integer
Private H As Integer
Private Sub Form_Load()
Move Screen.Width / 2 - Width / 2, Screen.Height / 2 - Height / 2
Accelarate = False
WindowState = 2
W = ScaleWidth
H = ScaleHeight
For i = 1 To 150
Star(i).X = W / 2
Star(i).Y = H / 2
RandomX:
Randomize
Star(i).AddX = Int(Rnd * 29) - Int(Rnd * 29)
If Star(i).AddX = 0 Then GoTo RandomX
RandomY:
Star(i).AddY = Int(Rnd * 19) - Int(Rnd * 19)
If Star(i).AddY = 0 Then GoTo RandomY
Next
End Sub
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
End
End Sub
Private Sub Timer1_Timer()
For i = 1 To 150
SetPixel hdc, W / 2, H / 2, &H404040
Select Case Abs(W / 2 - (Star(i).X))
Case Is < 20
col = &H0&
Size = 1
Case Is < 80
col = &H404040
Size = 1
Case Is < 150
col = &H808080
Size = 2
Case Is < 200
col = &HC0C0C0
Size = 3
Case Is < 250
col = &HFFFFFF
Size = 4
Case Else
col = &HFFFFFF
Size = 5
End Select
Select Case Abs(H / 2 - (Star(i).Y))
Case Is < 20
If Size = 0 Then
Size = 1
col = back5
End If
Case Is < 80
If Size = 0 Then
col = &H404040
Size = 1
End If
Case Is < 150
If Size < 2 Then
Size = 2
col = &H808080
End If
Case Is < 200
If Size < 3 Then
Size = 3
col = &HC0C0C0
End If
Case Is < 250
If Size < 4 Then
Size = 4
col = &HFFFFFF
End If
Case Else
If Size < 5 Then
Size = 5
col = &HFFFFFF
End If
End Select
SetPixel hdc, W / 2, H / 2, col
Select Case Size
Case 1
SetPixel Me.hdc, Star(i).X, Star(i).Y, &H0&
SetPixel Me.hdc, Star(i).X + Star(i).AddX, Star(i).Y + Star(i).AddY, col
Case 2
SetPixel Me.hdc, Star(i).X, Star(i).Y, &H0&
SetPixel Me.hdc, Star(i).X - 1, Star(i).Y, &H0&
SetPixel Me.hdc, Star(i).X + Star(i).AddX, Star(i).Y + Star(i).AddY, col
SetPixel Me.hdc, Star(i).X - 1 + Star(i).AddX, Star(i).Y + Star(i).AddY, col
Case 3
SetPixel Me.hdc, Star(i).X, Star(i).Y, &H0&
SetPixel Me.hdc, Star(i).X - 1, Star(i).Y, &H0&
SetPixel Me.hdc, Star(i).X - 1, Star(i).Y - 1, &H0&
SetPixel Me.hdc, Star(i).X + Star(i).AddX, Star(i).Y + Star(i).AddY, col
SetPixel Me.hdc, Star(i).X - 1 + Star(i).AddX, Star(i).Y + Star(i).AddY, col
SetPixel Me.hdc, Star(i).X - 1 + Star(i).AddX, Star(i).Y - 1 + Star(i).AddY, col
Case 4
SetPixel Me.hdc, Star(i).X, Star(i).Y, &H0&
SetPixel Me.hdc, Star(i).X - 1, Star(i).Y, &H0&
SetPixel Me.hdc, Star(i).X - 1, Star(i).Y - 1, &H0&
SetPixel Me.hdc, Star(i).X, Star(i).Y - 1, &H0&
SetPixel Me.hdc, Star(i).X + Star(i).AddX, Star(i).Y + Star(i).AddY, col
SetPixel Me.hdc, Star(i).X - 1 + Star(i).AddX, Star(i).Y + Star(i).AddY, col
SetPixel Me.hdc, Star(i).X - 1 + Star(i).AddX, Star(i).Y - 1 + Star(i).AddY, col
SetPixel Me.hdc, Star(i).X + Star(i).AddX, Star(i).Y - 1 + Star(i).AddY, col
Case 5
SetPixel Me.hdc, Star(i).X + a, Star(i).Y, &H0&
SetPixel Me.hdc, Star(i).X - 1 + a, Star(i).Y, &H0&
SetPixel Me.hdc, Star(i).X - 1 + a, Star(i).Y - 1, &H0&
SetPixel Me.hdc, Star(i).X + a, Star(i).Y - 1, &H0&
SetPixel Me.hdc, Star(i).X + a, Star(i).Y - 2, &H0&
SetPixel Me.hdc, Star(i).X - 1 + a, Star(i).Y - 2, &H0&
SetPixel Me.hdc, Star(i).X + Star(i).AddX, Star(i).Y + Star(i).AddY, col
SetPixel Me.hdc, Star(i).X - 1 + Star(i).AddX, Star(i).Y + Star(i).AddY, col
SetPixel Me.hdc, Star(i).X - 1 + Star(i).AddX, Star(i).Y - 1 + Star(i).AddY, col
SetPixel Me.hdc, Star(i).X + Star(i).AddX, Star(i).Y - 1 + Star(i).AddY, col
SetPixel Me.hdc, Star(i).X + Star(i).AddX, Star(i).Y - 2 + Star(i).AddY, col
SetPixel Me.hdc, Star(i).X - 1 + Star(i).AddX, Star(i).Y - 2 + Star(i).AddY, col
End Select
Star(i).X = Star(i).X + Star(i).AddX
Star(i).Y = Star(i).Y + Star(i).AddY
Star(i).AddX = Star(i).AddX + Sgn(Star(i).AddX) * (Size / 5)
Star(i).AddY = Star(i).AddY + Sgn(Star(i).AddY) * (Size / 5)
If Accelarate Then
Star(i).AddX = Star(i).AddX + Sgn(Star(i).AddX) * Size
Star(i).AddY = Star(i).AddY + Sgn(Star(i).AddY) * Size
End If
If Star(i).X < 0 Or Star(i).X > ScaleWidth Or Star(i).Y < 0 Or Star(i).Y > ScaleHeight Then
Star(i).X = W / 2
Star(i).Y = H / 2
RandomX:
Randomize
Star(i).AddX = Int(Rnd * 29) - Int(Rnd * 29)
If Star(i).AddX = 0 Then GoTo RandomX
RandomY:
Star(i).AddY = Int(Rnd * 19) - Int(Rnd * 19)
If Star(i).AddY = 0 Then GoTo RandomY
End If
Next
End Sub
上一篇:
CRCSeverDlg.cpp
下一篇:
ASP小区停车管理系统(Access)(含录像)