📄 form1.frm
字号:
VERSION 5.00
Begin VB.Form Form1
AutoRedraw = -1 'True
BackColor = &H00808000&
Caption = "[VB街头格斗] 2007年1月6日"
ClientHeight = 5670
ClientLeft = 60
ClientTop = 345
ClientWidth = 7650
Icon = "Form1.frx":0000
LinkTopic = "Form1"
ScaleHeight = 378
ScaleMode = 3 'Pixel
ScaleWidth = 510
StartUpPosition = 2 '屏幕中心
Begin VB.PictureBox MANPIC
AutoRedraw = -1 'True
AutoSize = -1 'True
BorderStyle = 0 'None
Height = 1215
Index = 0
Left = 2190
ScaleHeight = 81
ScaleMode = 3 'Pixel
ScaleWidth = 97
TabIndex = 1
Top = 240
Visible = 0 'False
Width = 1455
End
Begin VB.Timer Timer1
Interval = 1
Left = 600
Top = 2400
End
Begin VB.PictureBox PIC
AutoRedraw = -1 'True
AutoSize = -1 'True
BorderStyle = 0 'None
Height = 1215
Index = 0
Left = 240
ScaleHeight = 81
ScaleMode = 3 'Pixel
ScaleWidth = 97
TabIndex = 0
Top = 240
Visible = 0 'False
Width = 1455
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
'★★★★★****************************★★★★★**********************★★★★★
'金诺VB园-收藏整理
'本站是专注于VB和VBNET编程的源码下载站
'发布日期:2008-3-3 9:29:50
'网 站:http://www.vbget.com/ (金诺VB园)
'网 站:http://www.vbget.com/daohan/ (VB编程网址导航)
'E-Mail :cssshk@Gmail.com
'QQ :158676144
'源码作者:如果您有VB商业源码需要获得收益,本站将有VIP收费下载频道可供你发布!
' 您有权定价;改价;删除;及即时查看下载量(即收益),所有收益全部归您!
' 本站将在双方协商的一个金额周期内打款到作者帐户中,您只需负责打款费用!
' 本站只作为一个平台提供最新VB源码咨讯和源码下载!
'本注释由<站长工具之智能注释>软件自动添加!金诺VB园有此软件下载!
'★★★★★****************************★★★★★**********************★★★★★
Option Explicit
Dim BKPICTURE As Long '切换背景
Dim ITIMER As Long, JTIMER As Long '主角动画时间
Dim ATIMER1 As Long, BTIMER1 As Long '敌人1动画时间
Dim ATIMER2 As Long, BTIMER2 As Long '敌人2动画时间
Dim X1 As Single, Y1 As Single '主角坐标
Dim EA1 As Single, EB1 As Single, ELIFE1 As Long '敌人1坐标生命
Dim EA2 As Single, EB2 As Single, ELIFE2 As Long '敌人2坐标生命
Dim P1 As Long, P2 As Long, FPS As Long
Dim DONGZUO As Long '主角动作编号
Dim EYRND As Long
Dim ENEMYDZ1 As Long, DZE1 As Long, FPSENEMY1 As Long '敌人1动作编号
Dim ENEMYDZ2 As Long, DZE2 As Long, FPSENEMY2 As Long '敌人2动作编号
Dim WP As Long '物品
Dim JJ As Integer '敌人生命
Private Sub Form_Load()
Randomize Timer
Form1.Height = 480 * 15: Form1.Width = 640 * 15 '游戏分辨率640*480
X1 = 50: Y1 = 300 '主角坐标
JJ = 50 '敌人生命值
EA1 = 600: EB1 = 250 '敌人1坐标
ELIFE1 = JJ: DZE1 = 2
EA2 = 600: EB2 = 350 '敌人2坐标
ELIFE2 = JJ: DZE2 = 2
FPS = 1 '主角图片编号
FPSENEMY1 = 600 '敌人1图片编号
FPSENEMY2 = 600 '敌人2图片编号
ENEMYDZ1 = 1
ENEMYDZ2 = 1
WP = 1 '物品存在
BKPICTURE = 1 '切换背景
'载入图像
For P1 = 1 To 6: Load PIC(P1): Next
PIC(1).Picture = LoadPicture("PIC\BKPIC1.JPG") '背景1
PIC(2).Picture = LoadPicture("PIC\BKPIC2.JPG") '背景2
PIC(3).Picture = LoadPicture("PIC\BKPIC3.JPG") '背景3
PIC(5).Picture = LoadPicture("PIC\WUPIN.BMP") '物品
PIC(6).Picture = LoadPicture("PIC\QIANJIN.BMP") '箭头
For P2 = 1 To 3: Load MANPIC(P2): Next
MANPIC(1).Picture = LoadPicture("PIC\MANPIC1.bmp") '主角人物动作
MANPIC(3).Picture = LoadPicture("PIC\ENEMYL.bmp") '对手动作1
Me.Show
ITIMER = GetTickCount() '动画间隔时间
fxBitBlt Me.hDC, 160, 100, 324, 94, PIC(4).hDC, 0, 0, vbSrcCopy '片头
Me.Refresh
'////////播放MIDI音乐///////
Res = mciSendString("play MUSIC\DRAGON1.mid", Ret, 1024, 0)
End Sub
Private Sub Timer1_Timer()
If BKPICTURE = 1 Then fxBitBlt Me.hDC, 0, 0, 640, 480, PIC(1).hDC, 0, 0, vbSrcCopy '显示背景1
If BKPICTURE = 2 Then fxBitBlt Me.hDC, 0, 0, 640, 480, PIC(2).hDC, 0, 0, vbSrcCopy '显示背景2
If BKPICTURE = 3 Then fxBitBlt Me.hDC, 0, 0, 640, 480, PIC(3).hDC, 0, 0, vbSrcCopy '显示背景3
If WP = 1 Then fxRotate Me.hDC, 300, 270, PIC(5).hDC, 0, 0, 36, 36, 0, vbGreen '显示物品,透明绿色
DONGZUO = 1
If GetAsyncKeyState(VK_ESCAPE) And &H8000 Then
Res = mciSendString("close all", Ret, 1024, 0)
End
End If
'主角移动
If X1 > 30 And GetAsyncKeyState(VK_LEFT) And &H8000 Then X1 = X1 - 2: DONGZUO = 2
If X1 < 600 And GetAsyncKeyState(VK_RIGHT) And &H8000 Then X1 = X1 + 2: DONGZUO = 2
If Y1 > 220 And GetAsyncKeyState(VK_UP) And &H8000 Then Y1 = Y1 - 2: DONGZUO = 2
If Y1 < 400 And GetAsyncKeyState(VK_DOWN) And &H8000 Then Y1 = Y1 + 2: DONGZUO = 2
If GetAsyncKeyState(VK_ATTACK1) And &H8000 Then DONGZUO = 3 '出拳
If GetAsyncKeyState(VK_ATTACK2) And &H8000 Then DONGZUO = 4 '出脚
If ELIFE1 > 0 And DONGZUO = 3 And X1 > EA1 - 60 And X1 < EA1 + 60 And Y1 > EB1 - 60 And Y1 < EB1 + 60 Then
ELIFE1 = ELIFE1 - 1 '敌人1扣血
EYRND = 0: ENEMYDZ1 = 0: DZE1 = 5 '判断敌人1被拳打到
End If
If ELIFE1 > 0 And DONGZUO = 4 And X1 > EA1 - 60 And X1 < EA1 + 60 And Y1 > EB1 - 60 And Y1 < EB1 + 60 Then
ELIFE1 = ELIFE1 - 1 '敌人1扣血
EYRND = 0: ENEMYDZ1 = 0: DZE1 = 7 '判断敌人1被脚踢到
End If
If ELIFE2 > 0 And DONGZUO = 3 And X1 > EA2 - 60 And X1 < EA2 + 60 And Y1 > EB2 - 60 And Y1 < EB2 + 60 Then
ELIFE2 = ELIFE2 - 1 '敌人2扣血
EYRND = 0: ENEMYDZ2 = 0: DZE2 = 5 '判断敌人2被拳打到
End If
If ELIFE2 > 0 And DONGZUO = 4 And X1 > EA2 - 60 And X1 < EA2 + 60 And Y1 > EB2 - 60 And Y1 < EB2 + 60 Then
ELIFE2 = ELIFE2 - 1 '敌人2扣血
EYRND = 0: ENEMYDZ2 = 0: DZE2 = 7 '判断敌人2被脚踢到
End If
'捡物品
If WP = 1 And X1 > 290 And X1 < 340 And Y1 > 250 And Y1 < 330 Then
sndPlaySound "MUSIC\scifi.wav", SND_ASYNC
WP = 0 '捡到物品后物品消失
End If
'主角被打1
If (DZE1 = 3 Or DZE1 = 4) And X1 > EA1 - 60 And X1 < EA1 + 60 And Y1 > EB1 - 60 And Y1 < EB1 + 60 Then
DONGZUO = 5
If EYRND < 5 Then sndPlaySound "MUSIC\KUNGFU-1.wav", SND_ASYNC
End If
'主角被打2
If (DZE2 = 3 Or DZE2 = 4) And X1 > EA2 - 60 And X1 < EA2 + 60 And Y1 > EB2 - 60 And Y1 < EB2 + 60 Then
DONGZUO = 5
If EYRND < 5 Then sndPlaySound "MUSIC\KUNGFU-1.wav", SND_ASYNC
End If
'/////////////////////////////关卡编辑/////////////////////////////////////////
'过关,显示箭头
If ELIFE1 = 0 And ELIFE2 = 0 Then
If BKPICTURE = 1 Or BKPICTURE = 2 Then fxRotate Me.hDC, 560, 50, PIC(6).hDC, 0, 0, 80, 80, 0, vbGreen
End If
If BKPICTURE = 1 And ELIFE1 = 0 And ELIFE2 = 0 And X1 > 580 Then
BKPICTURE = 2
X1 = 50: Y1 = 300
DZE1 = 2: EA1 = 600: EB1 = 240: ELIFE1 = JJ
DZE2 = 2: EA2 = 600: EB2 = 400: ELIFE2 = JJ
End If
If BKPICTURE = 2 And ELIFE1 = 0 And ELIFE2 = 0 And X1 > 580 Then
BKPICTURE = 3
X1 = 50: Y1 = 300
DZE1 = 2: EA1 = 600: EB1 = 260:: ELIFE1 = JJ
DZE2 = 2: EA2 = 600: EB2 = 360:: ELIFE2 = JJ
End If
'////////////////////////////主角////////////////////////////////////////////
If DONGZUO = 1 Then
JTIMER = GetTickCount()
If JTIMER - ITIMER > 200 Then FPS = FPS + 80: ITIMER = GetTickCount()
If FPS >= 320 Then FPS = 1
fxRotate Me.hDC, X1, Y1, MANPIC(1).hDC, FPS, 0, 80, 80, 0, vbBlack '透明黑色
End If
If DONGZUO = 2 Then
JTIMER = GetTickCount()
If JTIMER - ITIMER > 50 Then FPS = FPS + 80: ITIMER = GetTickCount()
If FPS >= 640 Then FPS = 320
fxRotate Me.hDC, X1, Y1, MANPIC(1).hDC, FPS, 0, 80, 80, 0, vbBlack
End If
If DONGZUO = 3 Then
JTIMER = GetTickCount()
If JTIMER - ITIMER > 120 Then FPS = FPS + 80: ITIMER = GetTickCount(): DONGZUO = 1
If FPS >= 320 Then FPS = 1
fxRotate Me.hDC, X1, Y1, MANPIC(1).hDC, FPS, 80, 80, 80, 0, vbBlack
End If
If DONGZUO = 4 Then
JTIMER = GetTickCount()
If JTIMER - ITIMER > 100 Then FPS = FPS + 80: ITIMER = GetTickCount(): DONGZUO = 1
If FPS >= 560 Then FPS = 320
fxRotate Me.hDC, X1, Y1, MANPIC(1).hDC, FPS, 80, 80, 80, 0, vbBlack
End If
If DONGZUO = 5 Then
JTIMER = GetTickCount()
If JTIMER - ITIMER > 150 Then FPS = FPS - 80: ITIMER = GetTickCount(): DONGZUO = 1
If FPS < 480 Then FPS = 640
fxRotate Me.hDC, X1, Y1, MANPIC(1).hDC, FPS, 320, 80, 80, 0, vbBlack
End If
'///////////////////////////////////////////////////////////////////////////////
'////////////////////////////敌人1////////////////////////////////////////////
EYRND = Int(Rnd * 30) '敌人随机动作1
If ELIFE1 > 0 And EYRND = 1 Then ENEMYDZ1 = Int(Rnd * 5 + 1)
If ENEMYDZ1 = 1 Then DZE1 = 1
If ENEMYDZ1 = 2 Then DZE1 = 2 '走路比出拳多1
If ENEMYDZ1 = 3 Then DZE1 = 2
If ENEMYDZ1 = 4 Then DZE1 = 3
If ENEMYDZ1 = 5 Then DZE1 = 4
If DZE1 = 1 Then
BTIMER1 = GetTickCount()
If BTIMER1 - ATIMER1 > 200 Then FPSENEMY1 = FPSENEMY1 - 80: ATIMER1 = GetTickCount()
If FPSENEMY1 <= 480 Then FPSENEMY1 = 720
fxRotate Me.hDC, EA1, EB1, MANPIC(3).hDC, FPSENEMY1, 0, 80, 80, 0, vbBlack '透明黑色
End If
If DZE1 = 2 Then
BTIMER1 = GetTickCount()
If BTIMER1 - ATIMER1 > 60 Then FPSENEMY1 = FPSENEMY1 - 80: ATIMER1 = GetTickCount()
If FPSENEMY1 <= 80 Then FPSENEMY1 = 480
fxRotate Me.hDC, EA1, EB1, MANPIC(3).hDC, FPSENEMY1, 0, 80, 80, 0, vbBlack
EA1 = EA1 - 1
If EA1 < 0 Then EA1 = 600
End If
If DZE1 = 3 Then
BTIMER1 = GetTickCount()
If BTIMER1 - ATIMER1 > 100 Then FPSENEMY1 = FPSENEMY1 - 80: ATIMER1 = GetTickCount()
If FPSENEMY1 <= 1 Then FPSENEMY1 = 480
fxRotate Me.hDC, EA1, EB1, MANPIC(3).hDC, FPSENEMY1, 80, 80, 80, 0, vbBlack
End If
If DZE1 = 4 Then
BTIMER1 = GetTickCount()
If BTIMER1 - ATIMER1 > 100 Then FPSENEMY1 = FPSENEMY1 - 80: ATIMER1 = GetTickCount()
If FPSENEMY1 <= 480 Then FPSENEMY1 = 720
fxRotate Me.hDC, EA1, EB1, MANPIC(3).hDC, FPSENEMY1, 80, 80, 80, 0, vbBlack
End If
If DZE1 = 5 Then '敌人1被拳打
If EYRND < 5 Then sndPlaySound "MUSIC\KUNGFU-1.wav", SND_ASYNC
BTIMER1 = GetTickCount()
If BTIMER1 - ATIMER1 > 100 Then FPSENEMY1 = FPSENEMY1 - 80: ATIMER1 = GetTickCount()
If FPSENEMY1 <= 560 Then FPSENEMY1 = 720
fxRotate Me.hDC, EA1, EB1, MANPIC(3).hDC, FPSENEMY1, 240, 80, 80, 0, vbBlack
If ELIFE1 <= 0 Then ELIFE1 = 0: DZE1 = 6
End If
If DZE1 = 6 Then '敌人1被打倒
BTIMER1 = GetTickCount()
If BTIMER1 - ATIMER1 > 120 Then FPSENEMY1 = FPSENEMY1 - 80: ATIMER1 = GetTickCount()
If FPSENEMY1 <= 320 Then FPSENEMY1 = 400
fxRotate Me.hDC, EA1, EB1, MANPIC(3).hDC, FPSENEMY1, 240, 80, 80, 0, vbBlack
End If
If DZE1 = 7 Then '敌人1被脚踢
If EYRND < 5 Then sndPlaySound "MUSIC\KUNGFU-1.wav", SND_ASYNC
BTIMER1 = GetTickCount()
If BTIMER1 - ATIMER1 > 120 Then FPSENEMY1 = FPSENEMY1 + 80: ATIMER1 = GetTickCount()
If FPSENEMY1 >= 320 Then FPSENEMY1 = 80
fxRotate Me.hDC, EA1, EB1, MANPIC(3).hDC, FPSENEMY1, 320, 80, 80, 0, vbBlack
If ELIFE1 <= 0 Then ELIFE1 = 0: DZE1 = 8
End If
If DZE1 = 8 Then '敌人1被踢倒
BTIMER1 = GetTickCount()
If BTIMER1 - ATIMER1 > 100 Then FPSENEMY1 = FPSENEMY1 - 80: ATIMER1 = GetTickCount()
If FPSENEMY1 <= 400 Then FPSENEMY1 = 400
fxRotate Me.hDC, EA1, EB1, MANPIC(3).hDC, FPSENEMY1, 320, 80, 80, 0, vbBlack
End If
'////////////////////////////敌人2////////////////////////////////////////////
EYRND = Int(Rnd * 30) '敌人随机动作2
If ELIFE2 > 0 And EYRND = 2 Then ENEMYDZ2 = Int(Rnd * 5 + 1)
If ENEMYDZ2 = 1 Then DZE2 = 1
If ENEMYDZ2 = 2 Then DZE2 = 2 '走路比出拳多2
If ENEMYDZ2 = 3 Then DZE2 = 2
If ENEMYDZ2 = 4 Then DZE2 = 3
If ENEMYDZ2 = 5 Then DZE2 = 4
If DZE2 = 1 Then
BTIMER2 = GetTickCount()
If BTIMER2 - ATIMER2 > 200 Then FPSENEMY2 = FPSENEMY2 - 80: ATIMER2 = GetTickCount()
If FPSENEMY2 <= 480 Then FPSENEMY2 = 720
fxRotate Me.hDC, EA2, EB2, MANPIC(3).hDC, FPSENEMY2, 0, 80, 80, 0, vbBlack '透明黑色
End If
If DZE2 = 2 Then
BTIMER2 = GetTickCount()
If BTIMER2 - ATIMER2 > 60 Then FPSENEMY2 = FPSENEMY2 - 80: ATIMER2 = GetTickCount()
If FPSENEMY2 <= 80 Then FPSENEMY2 = 480
fxRotate Me.hDC, EA2, EB2, MANPIC(3).hDC, FPSENEMY2, 0, 80, 80, 0, vbBlack
EA2 = EA2 - 1
If EA2 < 0 Then EA2 = 600
End If
If DZE2 = 3 Then
BTIMER2 = GetTickCount()
If BTIMER2 - ATIMER2 > 100 Then FPSENEMY2 = FPSENEMY2 - 80: ATIMER2 = GetTickCount()
If FPSENEMY2 <= 1 Then FPSENEMY2 = 480
fxRotate Me.hDC, EA2, EB2, MANPIC(3).hDC, FPSENEMY2, 80, 80, 80, 0, vbBlack
End If
If DZE2 = 4 Then
BTIMER2 = GetTickCount()
If BTIMER2 - ATIMER2 > 100 Then FPSENEMY2 = FPSENEMY2 - 80: ATIMER2 = GetTickCount()
If FPSENEMY2 <= 480 Then FPSENEMY2 = 720
fxRotate Me.hDC, EA2, EB2, MANPIC(3).hDC, FPSENEMY2, 80, 80, 80, 0, vbBlack
End If
If DZE2 = 5 Then '敌人2被拳打
If EYRND < 5 Then sndPlaySound "MUSIC\KUNGFU-1.wav", SND_ASYNC
BTIMER2 = GetTickCount()
If BTIMER2 - ATIMER2 > 100 Then FPSENEMY2 = FPSENEMY2 - 80: ATIMER2 = GetTickCount()
If FPSENEMY2 <= 560 Then FPSENEMY2 = 720
fxRotate Me.hDC, EA2, EB2, MANPIC(3).hDC, FPSENEMY2, 240, 80, 80, 0, vbBlack
If ELIFE2 <= 0 Then ELIFE2 = 0: DZE2 = 6
End If
If DZE2 = 6 Then '敌人2被打倒
BTIMER2 = GetTickCount()
If BTIMER2 - ATIMER2 > 120 Then FPSENEMY2 = FPSENEMY2 - 80: ATIMER2 = GetTickCount()
If FPSENEMY2 <= 320 Then FPSENEMY2 = 400
fxRotate Me.hDC, EA2, EB2, MANPIC(3).hDC, FPSENEMY2, 240, 80, 80, 0, vbBlack
End If
If DZE2 = 7 Then '敌人2被脚踢
If EYRND < 5 Then sndPlaySound "MUSIC\KUNGFU-1.wav", SND_ASYNC
BTIMER2 = GetTickCount()
If BTIMER2 - ATIMER2 > 100 Then FPSENEMY2 = FPSENEMY2 + 80: ATIMER2 = GetTickCount()
If FPSENEMY2 >= 320 Then FPSENEMY2 = 80
fxRotate Me.hDC, EA2, EB2, MANPIC(3).hDC, FPSENEMY2, 320, 80, 80, 0, vbBlack
If ELIFE2 <= 0 Then ELIFE2 = 0: DZE2 = 8
End If
If DZE2 = 8 Then '敌人2被踢倒
BTIMER2 = GetTickCount()
If BTIMER2 - ATIMER2 > 120 Then FPSENEMY2 = FPSENEMY2 - 80: ATIMER2 = GetTickCount()
If FPSENEMY2 <= 400 Then FPSENEMY2 = 400
fxRotate Me.hDC, EA2, EB2, MANPIC(3).hDC, FPSENEMY2, 320, 80, 80, 0, vbBlack
End If
Me.Refresh
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -