📄 game.frm
字号:
Private Sub Form_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
frmcheat.Visible = True
End If
End Sub
Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case vbKeySpace
SpaceIsPressed = False
End Select
End Sub
Private Sub Form_Load()
Dim i As Integer
StartBullet = 1 'start counter for bullets
Lives = 3 'starting number of lives
gX = Me.imgRapFire.Left 'position of your plane
gY = Me.imgRapFire.Top
For i = 1 To MaxBadGuys 'position of the bad guys
BadX(i) = Rnd * Me.Width
BadY(i) = Rnd * Me.Height
Next
Me.DrawStyle = 0
Me.FillStyle = 0
Me.FillColor = vbGreen
Me.Shields = 4000
End Sub
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, x As Single, Y As Single)
SpaceIsPressed = True
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, x As Single, Y As Single)
MouseX = x
MouseY = Y
End Sub
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, x As Single, Y As Single)
SpaceIsPressed = False
End Sub
Private Sub Form_Unload(Cancel As Integer)
Unload Me
End Sub
Private Sub Timer1_Timer()
Dim i As Integer 'counter
Dim J As Integer 'counter
Dim TempX As Long
Dim TempY As Long
Me.Cls
If MouseX > gX Then XV = XV + 10
If MouseX < gX Then XV = XV - 10
If MouseY > gY Then YV = YV + 10
If MouseY < gY Then YV = YV - 10
If XV > MaxAccel Then XV = MaxAccel
If -XV > MaxAccel Then XV = -MaxAccel
If YV > MaxAccel Then YV = MaxAccel
If -YV > MaxAccel Then YV = -MaxAccel
gX = gX + XV
gY = gY + YV
If gX < 0 Then gX = 0: XV = 0
If gY < 0 Then gY = 0: YV = 0
If gX > Me.Width - Me.imgRap.Width Then gX = Me.Width - Me.imgRap.Width: XV = 0
If gY > Me.Height - Me.imgRap.Height Then gY = Me.Height - Me.imgRap.Height: YV = 0
Backy = Backy + 25
If Backy > Me.imgBackGround.Height Then Backy = 0
For i = 1 To Me.Width Step Me.imgBackGround.Width
For J = -(Me.imgBackGround.Height) To Me.Height Step Me.imgBackGround.Height
Me.PaintPicture Me.imgBackGround.Picture, i, J + Backy
Next
Next
If SpaceIsPressed And FireToggle = True Then
CurrBullet = CurrBullet + 1
If CurrBullet > MaxBullets Then CurrBullet = 1: StartBullet = 1
BulletX(CurrBullet) = gX
BulletY(CurrBullet) = gY
Me.PaintPicture Me.imgRapFireMask.Picture, gX, gY, , , , , , , vbSrcAnd
Me.PaintPicture Me.imgRapFire.Picture, gX, gY, , , , , , , vbSrcPaint
FireToggle = False
Else
Me.PaintPicture Me.imgRapMask.Picture, gX, gY, , , , , , , vbSrcAnd
Me.PaintPicture Me.imgRap.Picture, gX, gY, , , , , , , vbSrcPaint
FireToggle = True
End If
For i = StartBullet To MaxBullets
BulletY(i) = BulletY(i) - 125
If BulletY(i) > 0 Then
If BulletToggle = True Then
Me.PaintPicture Me.imgBullet1.Picture, BulletX(i) + Me.imgBullet1.Width, BulletY(i), , , , , , , vbSrcAnd
Me.PaintPicture Me.imgBullet2.Picture, BulletX(i) + Me.imgBullet1.Width, BulletY(i), , , , , , , vbSrcPaint
Me.PaintPicture Me.imgBullet1.Picture, BulletX(i) + Me.imgRap.Width - Me.imgBullet1.Width, BulletY(i), , , , , , , vbSrcAnd
Me.PaintPicture Me.imgBullet2.Picture, BulletX(i) + Me.imgRap.Width - Me.imgBullet1.Width, BulletY(i), , , , , , , vbSrcPaint
BulletToggle = False
Else
Me.PaintPicture Me.imgBullet2.Picture, BulletX(i) + Me.imgBullet1.Width, BulletY(i), , , , , , , vbSrcAnd
Me.PaintPicture Me.imgBullet1.Picture, BulletX(i) + Me.imgBullet1.Width, BulletY(i), , , , , , , vbSrcPaint
Me.PaintPicture Me.imgBullet2.Picture, BulletX(i) + Me.imgRap.Width - Me.imgBullet1.Width, BulletY(i), , , , , , , vbSrcAnd
Me.PaintPicture Me.imgBullet1.Picture, BulletX(i) + Me.imgRap.Width - Me.imgBullet1.Width, BulletY(i), , , , , , , vbSrcPaint
BulletToggle = True
End If
For J = 1 To MaxBadGuys
If BulletY(i) > BadY(J) And BulletY(i) < (BadY(J) + Me.imgBadGuy.Height) And BulletY(i) > 0 Then
If BulletX(i) > BadX(J) - Me.imgRap.Width And BulletX(i) < (BadX(J) + Me.imgBadGuy.Width) Then
Me.PaintPicture Me.imgExplodeMask.Picture, BadX(J), BadY(J), , , , , , , vbSrcAnd
Me.PaintPicture Me.imgExplode.Picture, BadX(J), BadY(J), , , , , , , vbSrcPaint
BadY(J) = -(Me.imgBadGuy.Height)
BadX(J) = Rnd * Me.Width
BulletY(i) = -100
If BeginGame = True Then Score = Score + 100
End If
End If
Next
End If
Next
For i = 1 To MaxBadGuys
EFireCount = EFireCount + 1
BadY(i) = BadY(i) + EnemySpeed
If BadX(i) > gX Then BadX(i) = BadX(i) - 25
If BadX(i) < gX Then BadX(i) = BadX(i) + 25
If BadY(i) > Me.Height Then BadY(i) = -Me.imgBadGuy.Height: BadX(i) = Rnd * Me.Width
If BadY(i) < Me.Height Then
Me.PaintPicture Me.imgBadGuyMask, BadX(i), BadY(i), , , , , , , vbSrcAnd
Me.PaintPicture Me.imgBadGuy, BadX(i), BadY(i), , , , , , , vbSrcPaint
End If
If EFireCount > (EnemyFireInterval + Rnd * 100) Then
BCurrBullet = BCurrBullet + 1: EFireCount = 1
If BCurrBullet > MaxEnemyBullets Then BCurrBullet = 1
BBulletX(BCurrBullet) = BadX(i) + Me.imgBadGuy.Width / 2 - Me.imgBBullet.Width / 2
BBulletY(BCurrBullet) = BadY(i)
End If
If BeginGame = True Then
If BadY(i) + Me.imgBadGuy.Height > gY And BadY(i) < gY + Me.imgRap.Height Then
If BadX(i) + Me.imgBadGuy.Width > gX And BadX(i) < gX + Me.imgRap.Width Then
Shields = Shields - 400
For J = 1 To 100
TempX = BadX(i) + Rnd * Me.imgBadGuy.Width
TempY = BadY(i) + Rnd * Me.imgBadGuy.Height
Me.PaintPicture Me.imgExplodeMask, TempX, TempY, , , , , , , vbSrcAnd
Me.PaintPicture Me.imgExplode, TempX, TempY, , , , , , , vbSrcPaint
Next
If Shields <= 0 Then
Lives = Lives - 1
For J = 1 To 250
TempX = gX + Rnd * Me.imgRap.Width
TempY = gY + Rnd * Me.imgRap.Height
Me.PaintPicture Me.imgExplodeMask, TempX, TempY, , , , , , , vbSrcAnd
Me.PaintPicture Me.imgExplode, TempX, TempY, , , , , , , vbSrcPaint
Next
If Lives = -1 Then
Me.Timer1.interval = 0
Me.FontSize = 32
Me.CurrentX = Me.Width / 2 - Me.TextWidth("GAME OVER") / 2
Me.CurrentY = Me.Height / 2 - 2000
Me.Print "GAME OVER"
Me.FontSize = 28
Me.Print ""
Me.CurrentX = Me.Width / 2 - Me.TextWidth("Press F2 To Start Over") / 2
Me.Print "Press F2 To Start Over"
End If
Shields = 4000
End If
BadY(i) = Me.Height
End If
End If
End If
Next
For i = 1 To MaxEnemyBullets
BBulletY(i) = BBulletY(i) + EnemySpeed + 25
If BBulletX(i) > gX Then BBulletX(i) = BBulletX(i) - 25
If BBulletX(i) < gX Then BBulletX(i) = BBulletX(i) + 25
If BBulletY(i) < Me.Height Then
If BeginGame = True Then
If BBulletY(i) < gY + Me.imgRap.Height And BBulletY(i) > gY Then
If BBulletX(i) < gX + Me.imgRap.Width And BBulletX(i) > gX Then
Shields = Shields - 100
If Shields <= 0 Then
Lives = Lives - 1
For J = 1 To 250
TempX = gX + Rnd * Me.imgRap.Width
TempY = gY + Rnd * Me.imgRap.Height
Me.PaintPicture Me.imgExplodeMask, TempX, TempY, , , , , , , vbSrcAnd
Me.PaintPicture Me.imgExplode, TempX, TempY, , , , , , , vbSrcPaint
Next
If Lives = -1 Then
Me.Timer1.interval = 0
Me.FontSize = 32
Me.CurrentX = Me.Width / 2 - Me.TextWidth("GAME OVER") / 2
Me.CurrentY = Me.Height / 2 - 2000
Me.Print "GAME OVER"
Me.FontSize = 28
Me.Print ""
Me.CurrentX = Me.Width / 2 - Me.TextWidth("Press F2 To Start Over") / 2
Me.Print "Press F2 To Start Over"
End If
Shields = 4000
End If
Me.PaintPicture Me.imgExplodeMask, BBulletX(i), BBulletY(i), , , , , , , vbSrcAnd
Me.PaintPicture Me.imgExplode, BBulletX(i), BBulletY(i), , , , , , , vbSrcPaint
BBulletY(i) = Me.Height
End If
End If
End If
Me.PaintPicture Me.imgBBulletMask, BBulletX(i), BBulletY(i), , , , , , , vbSrcAnd
Me.PaintPicture Me.imgBBullet, BBulletX(i), BBulletY(i), , , , , , , vbSrcPaint
End If
Next
For i = 1 To Lives
Me.PaintPicture Me.imgSmallRapMask.Picture, 100 + (i * (Me.imgSmallRap.Width + 25)), 400, , , , , , , vbSrcAnd
Me.PaintPicture Me.imgSmallRap.Picture, 100 + (i * (Me.imgSmallRap.Width + 25)), 400, , , , , , , vbSrcPaint
Next
If BeginGame = False Then
Me.FontSize = 16
Me.CurrentX = Me.Width / 2 - Me.TextWidth("BLacK PeaRL Space Impact") / 2
Me.CurrentY = Me.Height / 2 - 2000
Me.Print "BLacK PeaRL Space Impact"
Me.CurrentX = Me.Width / 2 - Me.TextWidth("Tekan Spasi Untuk Memulai Game") / 2
Me.Print "ekan Spasi Untuk Memulai Game"
Me.CurrentX = Me.Width / 2 - Me.TextWidth("Gunakan Mouse kamu untuk mengontrol Kapal") / 2
Me.Print "Gunakan Mouse kamu untuk mengontrol Kapal"
Me.CurrentX = Me.Width / 2 - Me.TextWidth("Klik Kanan/Kiri Untuk Menembak Musuh") / 2
Me.Print "Klik Kanan/Kiri Untuk Menembak Musuh"
End If
Me.Line (100, (Me.Height - 1000) - Shields)-(300, Me.Height - 1000), vbRed, B
Me.FontSize = 12
Me.CurrentX = 100
Me.CurrentY = 100
Me.Print "Score: " & Score
Me.CurrentX = Me.Width - 2500
Me.CurrentY = Me.Height - 800
Me.Print "BLacK PeaRL Game "
'if the user has paused then show the word in the center of the screen
If Me.Timer1.interval = 0 And Lives >= 0 Then
Me.FontSize = 28
Me.CurrentX = Me.Width / 2 - Me.TextWidth("Paused") / 2
Me.CurrentY = Me.Height / 2 - 2000
Me.Print "Paused"
End If
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -