?? modmain.bas
字號:
Attribute VB_Name = "ModMain"
Option Explicit
'Public StartSky As ClsStart
Public GameSound As SoundEngine
Public IsBeforeStart As Boolean
Public MainTime As Long
Public IsPlaying As Boolean
Public IsPaused As Boolean
Public IsUnloadAll As Boolean
Public IsShowInsertPlay As Boolean
Public GameFps As Long
Public MapIndex As Byte
Public CountA As Integer
Public CountB As Integer
Public CountC As Integer
Public Jk As Byte
Public MapSpeed As Single
Public BackSpeed As Single
Public IsLoadP(1 To 2) As Boolean
'Public IsPause As Boolean
Public MapWid As Integer
Public MapHei As Single '最長約10 分鐘
Public CurMapSeat As Single ' 只有高度
Public CurMapSeatObj As Integer
Public MaxLeft As Integer 'object 消失的位置
Public MaxRight As Integer
Public MidX As Integer '中間位置
Public MidY As Integer
Public LR As Integer
Public StartDrawX0 As Integer
Public StartDrawX As Single
Public HdcView As Long
Public HdcViewBuf As Long
Public HdcMapRandom As Long
Public HdcMapObj As Long
Public HdcShowScore As Long
Public HwndShowScore As Long
Public HdcShowScoreBuf As Long
'Public FrmMimiHwnd As Long
'Public FrmMainHwnd As Long
'Public HdcRandom() As Long
Public Map As SaveMap
Public LoadObj() As SaveObject
Public LoadPla() As SavePlane '因為一共只有兩架
Public LoadSta() As SaveStaticEObject
Public LoadBackObj() As SaveBackObject
Public LoadBul() As SaveBullet
Public LoadMyBul() As SaveMyBul
Public LoadExp() As SaveExp
Public LoadCra() As SaveCrash
Public LoadPac() As SavePac
Public LoadBom() As SaveBomb '這一項已不用,而是用畫法
Public LoadMusicList() As String
Public CurContinueP(1 To 2) As Byte
Public FlashFpsP(1 To 2) As Byte
Public CurContinueAll As Byte
Public CtrlPlay(1 To 2) As Byte
Public KeyLeft(1 To 2) As Byte
Public KeyRight(1 To 2) As Byte
Public KeyUp(1 To 2) As Byte
Public KeyDown(1 To 2) As Byte
Public KeyFire(1 To 2) As Byte
Public KeyFireHold(1 To 2) As Byte
Public KeyBomb(1 To 2) As Byte
Public IsKeyLeft(1 To 2) As Boolean
Public IsKeyRight(1 To 2) As Boolean
Public IsKeyUp(1 To 2) As Boolean
Public IsKeyDown(1 To 2) As Boolean
Public IsKeyFire(1 To 2) As Boolean
Public IsKeyFireHold(1 To 2) As Boolean
Public IsKeyBomb(1 To 2) As Boolean
Public HoldFps(1 To 2) As Long
Public PlayPla(1 To 2) As RunPlane '因為一共只有兩架
Public PlayObj() As RunObject
Public PlaySta() As RunStaticObject
Public PlayBackObj() As RunBackObject
Public PlayBul() As RunBullet
Public PlayMyBul() As RunMyBul
Public PlayExp() As RunExp
Public PlayCra() As RunCrash
Public PlayPac() As RunPac
Public PlayBom() As RunBomb
Public BacPixel() As PixelXY
Public BulTail() As RunBulletTail
Public BombStart() As TailBomb
Public RunBombTail() As TailBomb
Public PicRandom() As RunRandomPic
Public MaxObj As Byte
Public MaxSta As Byte
Public MaxBackObj As Byte
Public MaxBul As Byte
Public MaxMyBul As Byte
Public MaxExp As Byte
Public MaxCra As Byte
Public MaxPac As Byte
Public MaxBom As Byte
Public MaxPixel As Byte
Public MaxTail As Integer
Public MaxBombStart As Byte
Public MaxBombTail As Integer
Public CurObj As Byte '''''與max thing 對應,用于優化循環
Public CurSta As Byte
Public CurBackObj As Byte
Public CurBul As Byte
Public CurMyBul As Byte
Public CurExp As Byte
Public CurCra As Byte
Public CurPac As Byte
Public CurBom As Byte
Public CurPixel As Byte
Public CurTail As Integer
Public CurBStart As Byte
Public CurBTail As Integer
'Public SetSound(0 To 4) As Byte
Public SoundObj As Byte
Public SoundSta As Byte
Public SoundBul As Byte
Public SoundMybul As Byte
Public SoundExp As Byte
Public SoundCra As Byte
Public SoundPac As Byte
Public SoundBom As Byte
Public MaxLoadObj As Integer '''被裝載的最大值
Public MaxLoadSta As Integer
Public MaxLoadBackObj As Integer
Public MaxLoadBul As Integer
Public MaxLoadMyBul As Integer
Public MaxLoadExp As Integer
Public MaxLoadCra As Integer
Public MaxLoadPac As Integer
Public MaxLoadBom As Integer
Public MaxLoadRandom As Byte
Public Sub RedimAllThing()
MaxObj = 15
MaxSta = 15
MaxBackObj = 40 'debug
MaxBul = 60 ' 100 '50' 100''用100 調試
MaxMyBul = 160
MaxExp = 40
MaxCra = 20
MaxPac = 8
MaxBom = 2
MaxPixel = 10
MaxTail = 400 ' 250 '100 '
'250 只做調試用
MaxBombStart = 20
MaxBombTail = 200
ReDim PlayObj(1 To MaxObj)
ReDim PlaySta(1 To MaxSta)
ReDim PlayBackObj(1 To MaxBackObj)
ReDim PlayBul(1 To MaxBul)
ReDim PlayMyBul(1 To MaxMyBul)
ReDim PlayExp(1 To MaxExp)
ReDim PlayCra(1 To MaxCra)
ReDim PlayPac(1 To MaxPac)
ReDim PlayBom(1 To MaxBom)
ReDim BacPixel(1 To MaxPixel)
ReDim BulTail(1 To MaxTail)
ReDim BombStart(1 To MaxBombStart)
ReDim RunBombTail(1 To MaxBombTail)
'Reset Something
'IsBeforeStart = True
End Sub
Public Sub SetPlayKey()
CtrlPlay(1) = 0
CtrlPlay(2) = 0
KeyUp(1) = CurOption.KeyP(1, 0)
KeyLeft(1) = CurOption.KeyP(1, 1)
KeyDown(1) = CurOption.KeyP(1, 2)
KeyRight(1) = CurOption.KeyP(1, 3)
KeyFire(1) = CurOption.KeyP(1, 4)
KeyBomb(1) = CurOption.KeyP(1, 5)
KeyFireHold(1) = CurOption.KeyP(1, 6)
KeyUp(2) = CurOption.KeyP(2, 0)
KeyLeft(2) = CurOption.KeyP(2, 1)
KeyDown(2) = CurOption.KeyP(2, 2)
KeyRight(2) = CurOption.KeyP(2, 3)
KeyFire(2) = CurOption.KeyP(2, 4)
KeyBomb(2) = CurOption.KeyP(2, 5)
KeyFireHold(2) = CurOption.KeyP(2, 6)
End Sub
Public Sub InitPlayer()
Call SetPlayKey
IsPlaying = True
IsPaused = False
IsBomb(1) = False
IsBomb(2) = False
IsTailBombStart = False
BombStarted(1) = False
BombStarted(2) = False
CurMyFpsP(1) = 4
CurMyXp(2) = MidX + 80 ' 300
CurMyYp(2) = 400
CurMyFpsP(2) = 4
CurMyXp(1) = MidX - 80 ' 140
CurMyYp(1) = 400
PlayPla(1).CurLife = LoadPla(1).Life
PlayPla(2).CurLife = LoadPla(2).Life
PlayPla(1).CurFireType = 1
PlayPla(2).CurFireType = 1
PlayPla(1).CurPower = 0
PlayPla(2).CurPower = 0
PlayPla(1).CurBombNum = 3
PlayPla(2).CurBombNum = 3
For N = 1 To 2
With BombStart(N)
.ColorTail = 0
.CurFps = 0
.SpeedX = 0
.SpeedY = 0
.StyleBomb = 2
.WhichPla = 0
.X = 0
.Y = 0
End With
Next N
End Sub
Private Sub ResetCurThing()
CurObj = 0
CurSta = 0
CurBackObj = 0
CurBul = 0
CurMyBul = 0
CurExp = 0
CurCra = 0
CurPac = 0
CurBom = 0
CurPixel = 0
CurTail = 0
CurBStart = 0
CurBTail = 0
'For N = 0 To 4
' SetSound(N) = 0
'Next N
'SetSound(0) = 0
'SetSound(1) = 0
'SetSound(2) = 0 '(SetSound(2) + 1) Mod 2 '4
'SetSound(3) = 0
'SetSound(4) = 0
SoundObj = 0
SoundSta = 0
SoundBul = 0
SoundMybul = 0
SoundExp = 0
SoundCra = 0
SoundPac = 0
SoundBom = 0
End Sub
Public Sub Play()
Dim KT As Long
Call RedimAllThing
'debug
Call InitPlayer
GameFps = 0
Do While IsPlaying ' DoEvents And IsPlaying
KT = timeGetTime()
GameFps = IIf(GameFps <> 200, GameFps + 1, 1)
Call ResetCurThing
Call DrawMapToViewBuf
Call DrawPixel
Call LoadMapObject '
Call DrawBackObject
Call DrawObject
Call DrawStaticObject '
Call DrawPackage
Call DrawBulletTail '''''
Call DrawBullet
If IsLoadP(1) Then Call DrawPlane(1)
If IsLoadP(2) Then Call DrawPlane(2)
If IsBomb(1) Or IsBomb(2) Or IsTailBombStart Then Call DrawBomb
Call DrawMyBullet
Call DrawCrash
Call DrawExplode
Call LeftToRight(StartDrawX0)
Call DrawText
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -