挡板游戏1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.动画的代码
Dim time%, key%, score%, a#, y#
Private Sub Command2_Click()
Line1.X1 = 1320
Line1.X2 = 3000
Timer1.Interval = 100
Label1.Caption = 0
Timer2.Enabled = False
Timer1.Enabled =False
Label4.Caption = ""
score = -10
time = 0
Shape1.Left = (Line1.X1 + Line1.X2) / 2 '球位置初始化Shape1.Top = Line1.Y1 - Shape1.Height
End Sub
Private Sub Form_Load()
Line1.X1 = 1320
Line1.X2 = 3000
Timer1.Interval = 100
Label1.Caption = ""
Timer2.Enabled = False
Label4.Caption = ""
score = -10
time = 0
Shape1.Left = (Line1.X1 + Line1.X2) / 2
Shape1.Top = Line1.Y1 - Shape1.Height '游戏初始化End Sub
Private Sub Picture1_KeyDown(KeyCode As Integer, Shift As Integer)
key = KeyCode
Select Case KeyCode
Case 37 '如果按下左箭头,使板子向左移动
If Line1.X1 <= 0 Then
Line1.X1 = 0
Else
Line1.X1 = Line1.X1 - 90
Line1.X2 = Line1.X2 - 90
End If
Case 39 '如果按下右箭头,使板子向右移动
If Line1.X2 >= 4575 Then
Line1.X2 = 4575
Else
Line1.X1 = Line1.X1 + 90
Line1.X2 = Line1.X2 + 90
End If
End Select
End Sub
Private Sub Command1_Click()
Dim m%, n%
Picture1.SetFocus
Timer1.Enabled = True
Timer2.Enabled = True
Randomize
m = Int(Rnd * 1) + 0
If m = 0 Then
Randomize
a = Int(Rnd * (46 * 3.1416 / 180)) + 30 * 3.1416 / 180
y = 100 * Abs(Tan(a))
Else: Randomize
a = Int(Rnd * (46 * 3.1416 / 180)) + 105 * 3.1416 / 180 '平移移动动量和我竖直移动的夹角
y = 100 * Abs(Tan(a)) ‘确定单位时间内水平移动量,求出竖直移动量
End If
Private Sub Command3_Click()
If Command3.Caption = "暂停" Then
Timer1.Enabled = False
Timer2.Enabled = False
Label5.Visible = True
Command1.Enabled = False
Command2.Enabled = False
Command3.Caption = "继续"
Else
Picture1.SetFocus
Timer1.Enabled = True
Timer2.Enabled = True
Label5.Visible = False
Command1.Enabled = True
Command2.Enabled = True
Command3.Caption = "暂停"
End If
End Sub
Private Sub Picture1_KeyUp(KeyCode As Integer, Shift As
key = KeyAscii
End Sub
Private Static Sub Timer1_Timer()
Dim n%, m%, i%
If Shape1.Left < 0 Then
n = 0
End If
If Shape1.Left > 4200 Then '使球碰壁反弹的条件
n = 1
End If
Select Case (n)
Case 0
Shape1.Left = Shape1.Left + 100
Case 1
Shape1.Left = Shape1.Left - 100
End Select
If Shape1.Top + Shape1.Height >= Line1.Y1 And Shape1.Left <= (Line1.X2 - 175) And Shape1.Left >= (Line1.X1 - 200) Then m = 0 '球遇到挡板反弹的条件score = score + 10