偶式新手,刚刚看了一下《vb游戏变成21天子学通》的第一章,在做实例facecatch时,照书输入代码,编译运行正常,但是运行的结果点中次数score总是等于0,修改interval数值依然无效,不知何故,请有做过这个实例的大虾指教
怀疑是一下代码有误:'picture1_click事件处理器代码
Private Sub picture_click()
If Timer1.Interval > 100 Then
Beep
score = score + 1
End If
End Sub
'所有的便令都需要声明
Option Explicit
'全局变量Dim score As Integer
Dim movecount As Integer
Dim difficulty As Integer
Dim oldcheckedmenu As Menu'form_load事件处理器代码
Private Sub form_load()
initgame '调用初始化子程序
End Sub'picture1_click事件处理器代码
Private Sub picture_click()
If Timer1.Interval > 100 Then
Beep
score = score + 1
End If
End Sub
'timer1时间处理器子程序代码
Private Sub timer1_timer()
Dim x As Integer, y As Integer
Dim boxx As Integer, boxy As Integer
x = Int(392 * Rnd + 20)
y = Int(231 * Rnd + 20)
boxx = Picture1.Left
boxy = Picture1.Top
Form1.ForeColor = RGB(Rnd * 256, Rnd * 256, Rnd * 256)
Form1.Line (boxx, boxy)-(boxx + 100, boxy + 100), , BF
Picture1.Move x, y
movecount = movecount + 1
If movecount = 15 Then
Timer1.Interval = 0
MsgBox "your score :" & score
End If
End Sub
'菜单处理器代码
Private Sub mnueasy_click()
difficulty = 1000
oldcheckedmenu.Checked = False
Set oldcheckedmenu = mnueasy
mnueasy.Checked = True
End SubPrivate Sub mnuhard_click()
difficulty = 500
oldcheckedmenu.Checked = False
Set oldcheckedmenu = mnuhard
mnuhard.Checked = True
End Sub
Private Sub mnuimpossible_click()
difficulty = 250
oldcheckedmenu.Checked = False
Set oldcheckedmenu = mnuimpossible
mnuimpossible.Checked = True
End SubPrivate Sub mnumoderate_click()
difficulty = 7000
oldcheckedmenu.Checked = False
Set oldcheckedmenu = mnumoderate
mnumoderate.Checked = True
End Sub
Private Sub mnustartgame_click()
Form1.Cls
drawscreen
score = 0
movecount = 0
Timer1.Interval = difficulty
End Sub
Private Sub mnuexit_click()
Unload Form1
End Sub
'常规子程序:游戏初始化和绘制图形代码
Sub initgame()
difficulty = 500
mnumoderate.Checked = True
Set oldcheckedmenu = mnumoderate
Randomize
drawscreen
drawface
End SubSub drawscreen()
Form1.ForeColor = vbBlack
Form1.Line (10, 10)-(517, 10)
Form1.Line (10, 10)-(10, 358)
Form1.Line (522, 5)-(522, 362)
Form1.Line (522, 362)-(5, 362)
Form1.ForeColor = vbWhite
Form1.Line (5, 5)-(522, 5)
Form1.Line (5, 5)-(5, 366)
Form1.Line (517, 10)-(517, 358)
Form1.Line (517, 358)-(10, 358)
End SubSub drawface()
Picture1.FillStyle = vbSolid
Picture1.FillColor = vbYellow
Picture1.Circle (48, 48), 45
Picture1.FillColor = vbBlack
Picture1.Circle (30, 35), 10
Picture1.Circle (65, 35), 10
Picture1.Circle (65, 35), 10
Picture1.Circle (47, 55), 8
Picture1.DrawWidth = 2
Picture1.Circle (48, 50), 30, , 3.4, 6, 1#
End Sub付全部代码
怀疑是一下代码有误:'picture1_click事件处理器代码
Private Sub picture_click()
If Timer1.Interval > 100 Then
Beep
score = score + 1
End If
End Sub
'所有的便令都需要声明
Option Explicit
'全局变量Dim score As Integer
Dim movecount As Integer
Dim difficulty As Integer
Dim oldcheckedmenu As Menu'form_load事件处理器代码
Private Sub form_load()
initgame '调用初始化子程序
End Sub'picture1_click事件处理器代码
Private Sub picture_click()
If Timer1.Interval > 100 Then
Beep
score = score + 1
End If
End Sub
'timer1时间处理器子程序代码
Private Sub timer1_timer()
Dim x As Integer, y As Integer
Dim boxx As Integer, boxy As Integer
x = Int(392 * Rnd + 20)
y = Int(231 * Rnd + 20)
boxx = Picture1.Left
boxy = Picture1.Top
Form1.ForeColor = RGB(Rnd * 256, Rnd * 256, Rnd * 256)
Form1.Line (boxx, boxy)-(boxx + 100, boxy + 100), , BF
Picture1.Move x, y
movecount = movecount + 1
If movecount = 15 Then
Timer1.Interval = 0
MsgBox "your score :" & score
End If
End Sub
'菜单处理器代码
Private Sub mnueasy_click()
difficulty = 1000
oldcheckedmenu.Checked = False
Set oldcheckedmenu = mnueasy
mnueasy.Checked = True
End SubPrivate Sub mnuhard_click()
difficulty = 500
oldcheckedmenu.Checked = False
Set oldcheckedmenu = mnuhard
mnuhard.Checked = True
End Sub
Private Sub mnuimpossible_click()
difficulty = 250
oldcheckedmenu.Checked = False
Set oldcheckedmenu = mnuimpossible
mnuimpossible.Checked = True
End SubPrivate Sub mnumoderate_click()
difficulty = 7000
oldcheckedmenu.Checked = False
Set oldcheckedmenu = mnumoderate
mnumoderate.Checked = True
End Sub
Private Sub mnustartgame_click()
Form1.Cls
drawscreen
score = 0
movecount = 0
Timer1.Interval = difficulty
End Sub
Private Sub mnuexit_click()
Unload Form1
End Sub
'常规子程序:游戏初始化和绘制图形代码
Sub initgame()
difficulty = 500
mnumoderate.Checked = True
Set oldcheckedmenu = mnumoderate
Randomize
drawscreen
drawface
End SubSub drawscreen()
Form1.ForeColor = vbBlack
Form1.Line (10, 10)-(517, 10)
Form1.Line (10, 10)-(10, 358)
Form1.Line (522, 5)-(522, 362)
Form1.Line (522, 362)-(5, 362)
Form1.ForeColor = vbWhite
Form1.Line (5, 5)-(522, 5)
Form1.Line (5, 5)-(5, 366)
Form1.Line (517, 10)-(517, 358)
Form1.Line (517, 358)-(10, 358)
End SubSub drawface()
Picture1.FillStyle = vbSolid
Picture1.FillColor = vbYellow
Picture1.Circle (48, 48), 45
Picture1.FillColor = vbBlack
Picture1.Circle (30, 35), 10
Picture1.Circle (65, 35), 10
Picture1.Circle (65, 35), 10
Picture1.Circle (47, 55), 8
Picture1.DrawWidth = 2
Picture1.Circle (48, 50), 30, , 3.4, 6, 1#
End Sub付全部代码
'picture1_click事件处理器代码
Private Sub picture_click()
If Timer1.Interval > 100 Then
Beep
score = score + 1
End If
End Sub怀疑是这里出错
下面的是完整的代码