清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>
VERSION 5.00
Begin VB.Form TestForm1
Caption = "TestForm1"
ClientHeight = 6555
ClientLeft = 60
ClientTop = 345
ClientWidth = 10560
LinkTopic = "Form1"
ScaleHeight = 6555
ScaleWidth = 10560
StartUpPosition = 2 '屏幕中心
Begin VB.TextBox Text1
Height = 5295
Left = 8040
MultiLine = -1 'True
TabIndex = 6
Text = "TestForm1.frx":0000
Top = 480
Width = 2415
End
Begin VB.CommandButton Command1
Caption = "Command1"
Height = 495
Index = 5
Left = 7320
TabIndex = 5
Top = 6000
Width = 1215
End
Begin VB.CommandButton Command1
Caption = "Command1"
Height = 495
Index = 4
Left = 5880
TabIndex = 4
Top = 6000
Width = 1215
End
Begin VB.CommandButton Command1
Caption = "Command1"
Height = 495
Index = 3
Left = 4440
TabIndex = 3
Top = 6000
Width = 1215
End
Begin VB.CommandButton Command1
Caption = "Command1"
Height = 495
Index = 2
Left = 3000
TabIndex = 2
Top = 6000
Width = 1215
End
Begin VB.CommandButton Command1
Caption = "Command1"
Height = 495
Index = 1
Left = 1560
TabIndex = 1
Top = 6000
Width = 1215
End
Begin VB.CommandButton Command1
Caption = "Command1"
Height = 495
Index = 0
Left = 120
TabIndex = 0
Top = 6000
Width = 1215
End
Begin VB.Timer Timer1
Interval = 1000
Left = 8400
Top = 6000
End
Begin VB.Label Label3
Caption = "HP"
Height = 255
Index = 5
Left = 6360
TabIndex = 15
Top = 3720
Width = 1215
End
Begin VB.Label Label3
Caption = "SP"
Height = 255
Index = 4
Left = 6360
TabIndex = 14
Top = 4080
Width = 1215
End
Begin VB.Label Label3
Caption = "HP"
Height = 255
Index = 3
Left = 3600
TabIndex = 13
Top = 3720
Width = 1215
End
Begin VB.Label Label3
Caption = "SP"
Height = 255
Index = 2
Left = 3600
TabIndex = 12
Top = 4080
Width = 1215
End
Begin VB.Label Label3
Caption = "SP"
Height = 255
Index = 1
Left = 840
TabIndex = 11
Top = 4080
Width = 1215
End
Begin VB.Label Label3
Caption = "HP"
Height = 255
Index = 0
Left = 840
TabIndex = 10
Top = 3720
Width = 1215
End
Begin VB.Label Label2
Caption = "SP"
Height = 255
Index = 1
Left = 3480
TabIndex = 9
Top = 2040
Width = 1215
End
Begin VB.Label Label2
Caption = "HP"
Height = 255
Index = 0
Left = 3480
TabIndex = 8
Top = 1800
Width = 1215
End
Begin VB.Line Line1
BorderWidth = 2
Visible = 0 'False
X1 = 360
X2 = 720
Y1 = 120
Y2 = 120
End
Begin VB.Label Label1
Caption = "系统状态"
Height = 375
Left = 8040
TabIndex = 7
Top = 120
Width = 2415
End
Begin VB.Shape Shape4
FillColor = &H0000FF00&
FillStyle = 0 'Solid
Height = 135
Left = 840
Top = 5520
Visible = 0 'False
Width = 1215
End
Begin VB.Shape Shape2
FillStyle = 0 'Solid
Height = 1095
Index = 2
Left = 6360
Top = 4320
Width = 1215
End
Begin VB.Shape Shape2
FillStyle = 0 'Solid
Height = 1095
Index = 1
Left = 3600
Top = 4320
Width = 1215
End
Begin VB.Shape Shape3
FillColor = &H00C0FFFF&
FillStyle = 0 'Solid
Height = 255
Left = 0
Top = 0
Visible = 0 'False
Width = 255
End
Begin VB.Shape Shape2
FillStyle = 0 'Solid
Height = 1095
Index = 0
Left = 840
Top = 4320
Width = 1215
End
Begin VB.Shape Shape1
BackColor = &H000000FF&
BorderColor = &H000000FF&
FillColor = &H000000FF&
FillStyle = 0 'Solid
Height = 1095
Left = 3480
Top = 600
Width = 1215
End
End
Attribute VB_Name = "TestForm1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Type wAction
strAttack As String
strMagic As String
strbility As String
strBack As String
strOption As String
strRunAWay As String
strType As String
intModel As Integer
End Type
Private Type WFang
strName As String
intHP As Integer
intSP As Integer
intHPC As Integer
intSPC As Integer
End Type
Private Type DFang
intDHP As Integer
intDSP As Integer
intDCHP As Integer
intDCSP As Integer
strName As String
End Type
Dim boolW As Boolean, boolD As Boolean '布尔值,设置当前状态下,哪一方开始动作
Dim boolWDone As Boolean, boolDDone As Boolean, boolALLWDone As Boolean '布尔值,判断当前图标是否已经动作完成。和我方所有图标的动作是否完成。
Dim boolWAttackNow As Boolean '布尔值,表示我方进入战斗动画播放界面。
Dim DMinJie As Integer, WMinJie As Integer '敌我双方的敏捷
Dim intCurrentW As Integer '当前动作的图标
Dim WElements() As wAction '初始化屏幕上三个战斗图标
Dim strStateText As String '当前状态的文字描述
Dim eWFang() As WFang
Dim eDFang As DFang
Private Sub Command1_Click(Index As Integer)
'
boolWDone = False
Select Case Index
Case 0 '攻击
Call FAttackW(intCurrentW, "GONGJI")
Case 1 '魔法
Case 2 '技能
Case 3 '回避
Case 4 '选项
Case 5 '逃跑
Case Else
End Select
Call refreshState
Call closeAllButtom
End Sub
Private Sub Form_Load()
'
Call initData1 '初始化部分用于测试的数值
Call initData2
End Sub
Private Sub Timer1_Timer()
'
Call updateDF1 '更新敌方的位子移动
Call updateWF1 '更新我方的位置移动
Call checkWhoAttack '确定哪一方可以攻击
Call updateAttackW
Call fightNowW
End Sub
Private Sub updateDF1()
'
Call refreshPOS
End Sub
Private Sub updateWF1()
'
Call refreshWPOS
End Sub
Private Sub refreshWPOS()
'
Dim l1 As Long, l2 As Long, l3 As Long
Dim i1 As Integer
Dim d1 As Double
d1 = Rnd
d1 = d1 * 10
l1 = d1
l2 = d1 * 100
For i1 = 0 To Me.Shape2.UBound
Select Case l1
Case Is >= 8
Call SMove(Me.Shape2(i1), "left", l2)
Case Is >= 5
Call SMove(Me.Shape2(i1), "right", l2)
Case Is >= 2
Call SMove(Me.Shape2(i1), "top", l2)
Case Is >= 0
Call SMove(Me.Shape2(i1), "buttom", l2)
Case Else
End Select
Next i1
End Sub
Private Sub refreshPOS()
'
Dim l1 As Long, l2 As Long, l3 As Long
Dim d1 As Double
d1 = Rnd
d1 = d1 * 10
l1 = d1
l2 = d1 * 100
l3 = d1 * 10
' Debug.Print l3
' Debug.Print l2
Select Case l1
Case Is >= 8
' Debug.Print "XIA"
Me.Shape1.Top = Me.Shape1.Top + l3
Sleep (l2)
Me.Shape1.Top = Me.Shape1.Top - l3
Case Is >= 5
' Debug.Print "SHANG"
Me.Shape1.Top = Me.Shape1.Top - l3
Sleep (l2)
Me.Shape1.Top = Me.Shape1.Top + l3
Case Is >= 2
' Debug.Print "ZUO"
Me.Shape1.Left = Me.Shape1.Left - l3
Sleep (l2)
Me.Shape1.Left = Me.Shape1.Left + l3
Case Is >= 0
' Debug.Print "YOU"
Me.Shape1.Left = Me.Shape1.Left + l3
Sleep (l2)
Me.Shape1.Left = Me.Shape1.Left - l3
Case Else
' Debug.Print l1
End Select
Me.Refresh
End Sub
Private Sub SMove(ByRef Sp1 As Shape, strTmp1 As String, lTime As Long)
'
Dim llength As Long
llength = lTime / 10
Select Case strTmp1
Case "left"
Sp1.Left = Sp1.Left - llength
Sleep (lTime)
Sp1.Left = Sp1.Left + llength
Case "right"
Sp1.Left = Sp1.Left + llength
Sleep (lTime)
Sp1.Left = Sp1.Left - llength
Case "top"
Sp1.Top = Sp1.Top - llength
Sleep (lTime)
Sp1.Top = Sp1.Top + llength
Case "buttom"
Sp1.Top = Sp1.Top + llength
Sleep (lTime)
Sp1.Top = Sp1.Top - llength
Case Else
End Select
End Sub
'----------------------------------------------------------------
'检查此时段是我方可以战斗了,还是敌方战斗。
Private Sub checkWhoAttack()
'
If boolWAttackNow = True Then
Exit Sub
End If
If boolALLWDone = True Or boolWDone = True Then '表示我方还处在战斗当中
Exit Sub
ElseIf boolDDone = True Then '敌方进入战斗状态
strStateText = ""
Call refreshState
Call closeAllButtom
Exit Sub
End If
If DMinJie > WMinJie Then '战斗开始界面,判断哪一方的敏捷度高,哪一方开始攻击。
boolD = True
Me.Shape4.Visible = False
intCurrentW = 0
boolDDone = True
Else
boolW = True
Me.Shape4.Visible = True
boolALLWDone = True
boolWDone = False
Call openAllButtom
End If
End Sub
Private Sub initData1()
'
DMinJie = 1
WMinJie = 5
boolD = False
boolW = False
boolWDone = False
boolDDone = False
boolALLWDone = False
boolWAttackNow = False
Call closeAllButtom
End Sub
Private Sub initData2()
'
Dim i1 As Integer
ReDim WElements(3)
ReDim eWFang(3)
For i1 = 0 To UBound(eWFang) - 1
With eWFang(i1)
.intHP = 1000
.intHPC = 1000
.intSP = 500
.intSPC = 500
.strName = "我方卡片:" + CStr(i1)
End With
Next i1
End Sub
Private Sub FAttackW(intCurrentW1 As Integer, strAttack As String)
'
WElements(intCurrentW1).strType = strAttack
Select Case strAttack
Case "GONGJI"
WElements(intCurrentW1).intModel = 0
strStateText = strStateText + "Shape:" + CStr(intCurrentW1) + ", " + strAttack + vbCrLf
Case Else
End Select
boolWDone = True
End Sub
'-----------------------------------------------
'判断我方的所有队员是否全都攻击完毕,如没有攻击完毕,则进入下个队员的动作选择。
Private Sub updateAttackW()
'
If boolWDone = True Then
intCurrentW = intCurrentW + 1
If intCurrentW > 2 Then
boolWDone = False
Me.Shape4.Visible = False
boolWAttackNow = True
boolALLWDone = False
Exit Sub
End If
Me.Shape4.Left = Me.Shape2(intCurrentW).Left
Call openAllButtom
boolWDone = False
End If
End Sub
Private Sub refreshState()
'
Me.Text1.Text = ""
strStateText = strStateText + vbCrLf + "intCurrentW:" + CStr(intCurrentW) + vbCrLf
Me.Text1.Text = strStateText
End Sub
Private Sub closeAllButtom()
'
Dim i1 As Integer
For i1 = 0 To Me.Command1.UBound
Me.Command1(i1).Enabled = False
Next i1
End Sub
Private Sub openAllButtom()
'
Dim i1 As Integer
For i1 = 0 To Me.Command1.UBound
Me.Command1(i1).Enabled = True
Next i1
End Sub
Private Sub fightNowW()
'
Dim i1 As Integer
' If boolWAttackNow = True Then
' MsgBox "开始战斗动画的播放"
' boolWAttackNow = False
' Me.Timer1.Enabled = False
' End If
If boolWAttackNow = False Then
Exit Sub
End If
' MsgBox "开始战斗动画的播放"
strStateText = strStateText + "开始战斗动画的播放" + vbCrLf
boolWAttackNow = False
Me.Timer1.Enabled = False
Call refreshState
For i1 = 0 To UBound(WElements) - 1
Call attackShape(Shape2(i1))
Next i1
strStateText = strStateText + "我方战斗完成"
Call refreshState
Me.Timer1.Enabled = True
boolDDone = True
End Sub
Private Sub attackShape(ByRef Shape1 As Shape)
'
Shape1.Top = Shape1.Top - (Shape1.Height / 2)
' Sleep (1000)
Call AdrawLineW(Shape1.Top, Shape1.Left, Shape1.Width) '画出攻击线
' Sleep (1000)
Shape1.Top = Shape1.Top + (Shape1.Height / 2)
Me.Line1.Visible = False
End Sub
Private Sub AdrawLineW(intY As Integer, intX As Integer, intWidth As Integer)
'
Me.Line1.Visible = True
With Me.Line1
.X1 = intX + (intWidth / 2)
.X2 = Me.Shape1.Left + (Me.Shape1.Width / 2)
.Y1 = intY
.Y2 = Me.Shape1.Top + Me.Shape1.Height
End With
Me.Line1.BorderWidth = 5
Me.Refresh
Sleep (1000)
' Me.Line1.Visible = False
End Sub