level 6
Zioce
楼主
tmrYD的Enabled属性已经是True了,可为何没有触发TmrYD_Tick事件呢?又该如何更改呢?
代码如下。
Imports System
Public Class 游戏界面
Private renwu As New guaiwu
Private xieTiao As New Label
Private nuQi As New Label
Private tmrS As New Timer
Private tmrI As New Timer
Private GWZT(24) As Integer '表明怪物的状态。(0正常 1无法移动、攻击 2……)
Private GuaiwuB As Integer = 0 '怪物的波数
Private GuaiwuZ As Integer = 0 '怪物现在的数量
Private GuaiwuC(24) As Boolean '指示怪物是否存在
Private yidong(24) As Threading.Thread
Private tmrYD(24) As Timer
Private tmrGJ(24) As Timer
Private tmrBossTS(24) As Timer
Public Sub GWCSH(ByVal a As Object)
If CType(Me.Controls.Item(a), guaiwu).Leixing = 0 Then
CType(Me.Controls.Item(a), guaiwu).gongJ = GuaiwuB * 10 + 10
If CType(Me.Controls.Item(a), guaiwu).gongJ > 1000 Then CType(Me.Controls.Item(a), guaiwu).gongJ = 1000
CType(Me.Controls.Item(a), guaiwu).fangY = 50 + GuaiwuB * 1
If CType(Me.Controls.Item(a), guaiwu).fangY > 100 Then CType(Me.Controls.Item(a), guaiwu).fangY = 100
’无关系代码省略
yidong(a - 3) = New Threading.Thread(AddressOf FY)
YDStart(a)
ElseIf CType(Me.Controls.Item(a), guaiwu).Leixing = 1 Then
CType(Me.Controls.Item(a), guaiwu).gongJ = GuaiwuB * 15 + 10
If CType(Me.Controls.Item(a), guaiwu).gongJ > 1500 Then CType(Me.Controls.Item(a), guaiwu).gongJ = 1500
CType(Me.Controls.Item(a), guaiwu).fangY = 0 + GuaiwuB * 1
If CType(Me.Controls.Item(a), guaiwu).fangY > 50 Then CType(Me.Controls.Item(a), guaiwu).fangY = 50
’无关系代码省略
yidong(a - 3) = New Threading.Thread(AddressOf FY)
YDStart(a)
ElseIf CType(Me.Controls.Item(a), guaiwu).Leixing = 2 Then
CType(Me.Controls.Item(a), guaiwu).gongJ = GuaiwuB * 100 + 200
If CType(Me.Controls.Item(a), guaiwu).gongJ > 4000 Then CType(Me.Controls.Item(a), guaiwu).gongJ = 4000
CType(Me.Controls.Item(a), guaiwu).fangY = 60 + GuaiwuB * 2
If CType(Me.Controls.Item(a), guaiwu).fangY > 120 Then CType(Me.Controls.Item(a), guaiwu).fangY = 120
’无关系代码省略
yidong(a - 3) = New Threading.Thread(AddressOf FY)
YDStart(a)
End If
End Sub
Private Sub YDStart(ByVal a As Integer)
yidong(a - 3).Start(a)
End Sub
Private Class guaiwu
Inherits Label
Public Property Leixing As Integer '类型(Boss、近战、远攻、召唤师)
Public Property FanY As Integer '反应速度
Public Property GongJ As Integer '攻击
Public Property FangY As Integer '守备
Public Property HP As Integer '生命
Public Property SuD As Integer '速度
Public Property JianG As Integer '间隔(攻击)
Public Property FangS As Integer '方式(攻击)
End Class
Private Sub 游戏界面_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Click ''
MsgBox(Me.Controls.Item(27).Left & "&" & Me.Controls.Item(27).Top & "&" & tmrYD(24).Enabled & "&" & tmrGJ(24).Interval) ''成功后删除
End Sub ''
Private Sub 游戏界面_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
’无关系代码省略
End Sub
Private Sub 游戏界面_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
CheckForIllegalCrossThreadCalls = False
Call JiaZai()
End Sub
Public Sub JiaZai()
Me.Height = 400
Me.Width = 400
Me.Controls.Clear()
Me.Controls.Add(renwu)
tmrS.Interval = 1
AddHandler tmrS.Tick, AddressOf tmrs_T
tmrI.Interval = 20000
AddHandler tmrI.Tick, AddressOf tmri_T
renwu.Top = 30
renwu.Left = 0
renwu.Width = 30
renwu.Height = 30
renwu.BackColor = Color.Red
renwu.Visible = True
xieTiao.Left = 0
xieTiao.Top = 0
xieTiao.Width = 200
xieTiao.Height = 15
xieTiao.BackColor = Color.Red
nuQi.Left = 0
nuQi.Top = 15
nuQi.Width = 0
nuQi.Height = 15
nuQi.BackColor = Color.Yellow
Me.Controls.Add(xieTiao)
Me.Controls.Add(nuQi)
tmrS.Enabled = True
tmrI.Enabled = True
Dim a As Integer
For a = 0 To 24
Dim guai As New guaiwu
Me.Controls.Add(guai)
guai.BackColor = Color.White '
guai.BorderStyle = 1
guai.Width = 30
guai.Height = 30
guai.Visible = False
Next
End Sub
Private Sub tmrs_T(ByVal sender As Object, ByVal e As EventArgs)
Randomize()
tmrS.Enabled = False
Dim a As Integer, b As Integer, c As Integer, fx As Integer, l As Integer, t As Integer
If GuaiwuZ <= 20 Then
fx = CInt(Rnd() * 3)
If (GuaiwuB + 1) \ 10 = (GuaiwuB + 1) / 10 Then
Else
c = CInt(Rnd() * 4)
For b = 0 To 4
For a = 0 To 24
If GuaiwuC(a) = False Then
If b < c Then
CType(Me.Controls.Item(Me.Controls.Count - 1 - a), guaiwu).Leixing = 0
Else
CType(Me.Controls.Item(Me.Controls.Count - 1 - a), guaiwu).Leixing = 1
End If
GuaiwuC(a) = True
GuaiwuZ += 1
GWCSH(Me.Controls.Count - 1 - a)
Select Case fx
Case 0
l = CInt(Rnd() * Me.Width)
Me.Controls.Item(Me.Controls.Count - 1 - a).Left = l
Me.Controls.Item(Me.Controls.Count - 1 - a).Top = -30
Me.Controls.Item(Me.Controls.Count - 1 - a).Visible = True
Case 1
l = CInt(Rnd() * Me.Width)
Me.Controls.Item(Me.Controls.Count - 1 - a).Left = l
Me.Controls.Item(Me.Controls.Count - 1 - a).Top = Me.Height + 30
Me.Controls.Item(Me.Controls.Count - 1 - a).Visible = True
Case 2
t = CInt(Rnd() * Me.Height)
Me.Controls.Item(Me.Controls.Count - 1 - a).Left = -30
Me.Controls.Item(Me.Controls.Count - 1 - a).Top = t
Me.Controls.Item(Me.Controls.Count - 1 - a).Visible = True
Case 3
t = CInt(Rnd() * Me.Height)
Me.Controls.Item(Me.Controls.Count - 1 - a).Left = Me.Width + 30
Me.Controls.Item(Me.Controls.Count - 1 - a).Top = t
Me.Controls.Item(Me.Controls.Count - 1 - a).Visible = True
End Select
Exit For
End If
Next a
Next b
End If
End If
End Sub
Private Sub tmri_T(ByVal sender As Object, ByVal e As EventArgs)
tmrS.Enabled = True
End Sub
Private Sub tmrGJ_Tick(ByVal sender As Object, ByVal e As EventArgs)
End Sub
Private Sub tmrYD_Tick(ByVal sender As Object, ByVal e As EventArgs)
MsgBox(1) '‘成功后删除
Randomize()
Dim q As Integer, w As String = Nothing, a As String = Nothing
q = CInt(Rnd() * 1)
If renwu.Left > CType(Me.Controls.Item(CType(sender, Timer).Tag), guaiwu).Left Then
w = "y"
ElseIf renwu.Left < CType(Me.Controls.Item(CType(sender, Timer).Tag), guaiwu).Left Then
w = "z"
End If
If renwu.Top > CType(Me.Controls.Item(CType(sender, Timer).Tag), guaiwu).Top Then
a = "x"
ElseIf renwu.Top < CType(Me.Controls.Item(CType(sender, Timer).Tag), guaiwu).Top Then
a = "s"
End If
If q = 0 Then
If w = "z" Then
CType(Me.Controls.Item(CType(sender, Timer).Tag), guaiwu).Left -= (CType(Me.Controls.Item(Me.Tag), guaiwu).SuD)
ElseIf w = "y" Then
CType(Me.Controls.Item(CType(sender, Timer).Tag), guaiwu).Left += (CType(Me.Controls.Item(Me.Tag), guaiwu).SuD)
End If
Else
If a = "x" Then
CType(Me.Controls.Item(CType(sender, Timer).Tag), guaiwu).Top += (CType(Me.Controls.Item(Me.Tag), guaiwu).SuD)
ElseIf a = "s" Then
CType(Me.Controls.Item(CType(sender, Timer).Tag), guaiwu).Top -= (CType(Me.Controls.Item(Me.Tag), guaiwu).SuD)
End If
End If
End Sub
Private Sub FY(ByVal intA As Integer)
Static a(24) As Boolean
While True
If a(intA - 3) = False Then
GWTmrSC(intA)
End If
GWFY(intA)
a(intA - 3) = True
End While
End Sub
Private Sub GWFY(ByVal GWNumber As Integer)
tmrGJ(GWNumber - 3).Enabled = True
yidong(GWNumber - 3).Sleep(CType(Me.Controls.Item(GWNumber), guaiwu).FanY)
End Sub
Private Sub GWTmrSC(ByVal GWNumber As Integer)
tmrYD(GWNumber - 3) = New Timer
tmrGJ(GWNumber - 3) = New Timer
tmrBossTS(GWNumber - 3) = New Timer
AddHandler tmrYD(GWNumber - 3).Tick, AddressOf tmrYD_Tick
AddHandler tmrGJ(GWNumber - 3).Tick, AddressOf tmrGJ_Tick
tmrYD(GWNumber - 3).Interval = 100
tmrYD(GWNumber - 3).Tag = GWNumber
tmrGJ(GWNumber - 3).Interval = CType(Me.Controls.Item(GWNumber), guaiwu).JianG
tmrGJ(GWNumber - 3).Tag = GWNumber
tmrBossTS(GWNumber - 3).Interval = 10000
tmrBossTS(GWNumber - 3).Tag = GWNumber
tmrYD(GWNumber - 3).Enabled = True
End Sub
Private Sub 游戏界面_SizeChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.SizeChanged
Me.Height = 400
Me.Width = 400
End Sub
End Class
2014年02月08日 09点02分
1
代码如下。
Imports System
Public Class 游戏界面
Private renwu As New guaiwu
Private xieTiao As New Label
Private nuQi As New Label
Private tmrS As New Timer
Private tmrI As New Timer
Private GWZT(24) As Integer '表明怪物的状态。(0正常 1无法移动、攻击 2……)
Private GuaiwuB As Integer = 0 '怪物的波数
Private GuaiwuZ As Integer = 0 '怪物现在的数量
Private GuaiwuC(24) As Boolean '指示怪物是否存在
Private yidong(24) As Threading.Thread
Private tmrYD(24) As Timer
Private tmrGJ(24) As Timer
Private tmrBossTS(24) As Timer
Public Sub GWCSH(ByVal a As Object)
If CType(Me.Controls.Item(a), guaiwu).Leixing = 0 Then
CType(Me.Controls.Item(a), guaiwu).gongJ = GuaiwuB * 10 + 10
If CType(Me.Controls.Item(a), guaiwu).gongJ > 1000 Then CType(Me.Controls.Item(a), guaiwu).gongJ = 1000
CType(Me.Controls.Item(a), guaiwu).fangY = 50 + GuaiwuB * 1
If CType(Me.Controls.Item(a), guaiwu).fangY > 100 Then CType(Me.Controls.Item(a), guaiwu).fangY = 100
’无关系代码省略
yidong(a - 3) = New Threading.Thread(AddressOf FY)
YDStart(a)
ElseIf CType(Me.Controls.Item(a), guaiwu).Leixing = 1 Then
CType(Me.Controls.Item(a), guaiwu).gongJ = GuaiwuB * 15 + 10
If CType(Me.Controls.Item(a), guaiwu).gongJ > 1500 Then CType(Me.Controls.Item(a), guaiwu).gongJ = 1500
CType(Me.Controls.Item(a), guaiwu).fangY = 0 + GuaiwuB * 1
If CType(Me.Controls.Item(a), guaiwu).fangY > 50 Then CType(Me.Controls.Item(a), guaiwu).fangY = 50
’无关系代码省略
yidong(a - 3) = New Threading.Thread(AddressOf FY)
YDStart(a)
ElseIf CType(Me.Controls.Item(a), guaiwu).Leixing = 2 Then
CType(Me.Controls.Item(a), guaiwu).gongJ = GuaiwuB * 100 + 200
If CType(Me.Controls.Item(a), guaiwu).gongJ > 4000 Then CType(Me.Controls.Item(a), guaiwu).gongJ = 4000
CType(Me.Controls.Item(a), guaiwu).fangY = 60 + GuaiwuB * 2
If CType(Me.Controls.Item(a), guaiwu).fangY > 120 Then CType(Me.Controls.Item(a), guaiwu).fangY = 120
’无关系代码省略
yidong(a - 3) = New Threading.Thread(AddressOf FY)
YDStart(a)
End If
End Sub
Private Sub YDStart(ByVal a As Integer)
yidong(a - 3).Start(a)
End Sub
Private Class guaiwu
Inherits Label
Public Property Leixing As Integer '类型(Boss、近战、远攻、召唤师)
Public Property FanY As Integer '反应速度
Public Property GongJ As Integer '攻击
Public Property FangY As Integer '守备
Public Property HP As Integer '生命
Public Property SuD As Integer '速度
Public Property JianG As Integer '间隔(攻击)
Public Property FangS As Integer '方式(攻击)
End Class
Private Sub 游戏界面_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Click ''
MsgBox(Me.Controls.Item(27).Left & "&" & Me.Controls.Item(27).Top & "&" & tmrYD(24).Enabled & "&" & tmrGJ(24).Interval) ''成功后删除
End Sub ''
Private Sub 游戏界面_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
’无关系代码省略
End Sub
Private Sub 游戏界面_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
CheckForIllegalCrossThreadCalls = False
Call JiaZai()
End Sub
Public Sub JiaZai()
Me.Height = 400
Me.Width = 400
Me.Controls.Clear()
Me.Controls.Add(renwu)
tmrS.Interval = 1
AddHandler tmrS.Tick, AddressOf tmrs_T
tmrI.Interval = 20000
AddHandler tmrI.Tick, AddressOf tmri_T
renwu.Top = 30
renwu.Left = 0
renwu.Width = 30
renwu.Height = 30
renwu.BackColor = Color.Red
renwu.Visible = True
xieTiao.Left = 0
xieTiao.Top = 0
xieTiao.Width = 200
xieTiao.Height = 15
xieTiao.BackColor = Color.Red
nuQi.Left = 0
nuQi.Top = 15
nuQi.Width = 0
nuQi.Height = 15
nuQi.BackColor = Color.Yellow
Me.Controls.Add(xieTiao)
Me.Controls.Add(nuQi)
tmrS.Enabled = True
tmrI.Enabled = True
Dim a As Integer
For a = 0 To 24
Dim guai As New guaiwu
Me.Controls.Add(guai)
guai.BackColor = Color.White '
guai.BorderStyle = 1
guai.Width = 30
guai.Height = 30
guai.Visible = False
Next
End Sub
Private Sub tmrs_T(ByVal sender As Object, ByVal e As EventArgs)
Randomize()
tmrS.Enabled = False
Dim a As Integer, b As Integer, c As Integer, fx As Integer, l As Integer, t As Integer
If GuaiwuZ <= 20 Then
fx = CInt(Rnd() * 3)
If (GuaiwuB + 1) \ 10 = (GuaiwuB + 1) / 10 Then
Else
c = CInt(Rnd() * 4)
For b = 0 To 4
For a = 0 To 24
If GuaiwuC(a) = False Then
If b < c Then
CType(Me.Controls.Item(Me.Controls.Count - 1 - a), guaiwu).Leixing = 0
Else
CType(Me.Controls.Item(Me.Controls.Count - 1 - a), guaiwu).Leixing = 1
End If
GuaiwuC(a) = True
GuaiwuZ += 1
GWCSH(Me.Controls.Count - 1 - a)
Select Case fx
Case 0
l = CInt(Rnd() * Me.Width)
Me.Controls.Item(Me.Controls.Count - 1 - a).Left = l
Me.Controls.Item(Me.Controls.Count - 1 - a).Top = -30
Me.Controls.Item(Me.Controls.Count - 1 - a).Visible = True
Case 1
l = CInt(Rnd() * Me.Width)
Me.Controls.Item(Me.Controls.Count - 1 - a).Left = l
Me.Controls.Item(Me.Controls.Count - 1 - a).Top = Me.Height + 30
Me.Controls.Item(Me.Controls.Count - 1 - a).Visible = True
Case 2
t = CInt(Rnd() * Me.Height)
Me.Controls.Item(Me.Controls.Count - 1 - a).Left = -30
Me.Controls.Item(Me.Controls.Count - 1 - a).Top = t
Me.Controls.Item(Me.Controls.Count - 1 - a).Visible = True
Case 3
t = CInt(Rnd() * Me.Height)
Me.Controls.Item(Me.Controls.Count - 1 - a).Left = Me.Width + 30
Me.Controls.Item(Me.Controls.Count - 1 - a).Top = t
Me.Controls.Item(Me.Controls.Count - 1 - a).Visible = True
End Select
Exit For
End If
Next a
Next b
End If
End If
End Sub
Private Sub tmri_T(ByVal sender As Object, ByVal e As EventArgs)
tmrS.Enabled = True
End Sub
Private Sub tmrGJ_Tick(ByVal sender As Object, ByVal e As EventArgs)
End Sub
Private Sub tmrYD_Tick(ByVal sender As Object, ByVal e As EventArgs)
MsgBox(1) '‘成功后删除
Randomize()
Dim q As Integer, w As String = Nothing, a As String = Nothing
q = CInt(Rnd() * 1)
If renwu.Left > CType(Me.Controls.Item(CType(sender, Timer).Tag), guaiwu).Left Then
w = "y"
ElseIf renwu.Left < CType(Me.Controls.Item(CType(sender, Timer).Tag), guaiwu).Left Then
w = "z"
End If
If renwu.Top > CType(Me.Controls.Item(CType(sender, Timer).Tag), guaiwu).Top Then
a = "x"
ElseIf renwu.Top < CType(Me.Controls.Item(CType(sender, Timer).Tag), guaiwu).Top Then
a = "s"
End If
If q = 0 Then
If w = "z" Then
CType(Me.Controls.Item(CType(sender, Timer).Tag), guaiwu).Left -= (CType(Me.Controls.Item(Me.Tag), guaiwu).SuD)
ElseIf w = "y" Then
CType(Me.Controls.Item(CType(sender, Timer).Tag), guaiwu).Left += (CType(Me.Controls.Item(Me.Tag), guaiwu).SuD)
End If
Else
If a = "x" Then
CType(Me.Controls.Item(CType(sender, Timer).Tag), guaiwu).Top += (CType(Me.Controls.Item(Me.Tag), guaiwu).SuD)
ElseIf a = "s" Then
CType(Me.Controls.Item(CType(sender, Timer).Tag), guaiwu).Top -= (CType(Me.Controls.Item(Me.Tag), guaiwu).SuD)
End If
End If
End Sub
Private Sub FY(ByVal intA As Integer)
Static a(24) As Boolean
While True
If a(intA - 3) = False Then
GWTmrSC(intA)
End If
GWFY(intA)
a(intA - 3) = True
End While
End Sub
Private Sub GWFY(ByVal GWNumber As Integer)
tmrGJ(GWNumber - 3).Enabled = True
yidong(GWNumber - 3).Sleep(CType(Me.Controls.Item(GWNumber), guaiwu).FanY)
End Sub
Private Sub GWTmrSC(ByVal GWNumber As Integer)
tmrYD(GWNumber - 3) = New Timer
tmrGJ(GWNumber - 3) = New Timer
tmrBossTS(GWNumber - 3) = New Timer
AddHandler tmrYD(GWNumber - 3).Tick, AddressOf tmrYD_Tick
AddHandler tmrGJ(GWNumber - 3).Tick, AddressOf tmrGJ_Tick
tmrYD(GWNumber - 3).Interval = 100
tmrYD(GWNumber - 3).Tag = GWNumber
tmrGJ(GWNumber - 3).Interval = CType(Me.Controls.Item(GWNumber), guaiwu).JianG
tmrGJ(GWNumber - 3).Tag = GWNumber
tmrBossTS(GWNumber - 3).Interval = 10000
tmrBossTS(GWNumber - 3).Tag = GWNumber
tmrYD(GWNumber - 3).Enabled = True
End Sub
Private Sub 游戏界面_SizeChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.SizeChanged
Me.Height = 400
Me.Width = 400
End Sub
End Class