?? objecttype.bas
字號:
Attribute VB_Name = "ModObjectType"
Option Explicit
Public HeadStr As String * 20
Public AllCon As Integer '定義的文件頭'AllCon 是包含的個數,而不是序數
Public N As Integer 'for Count
Public ConX() As Integer '''''''''' 作為存儲與運行的通訊,編號為二者最大值
''以下聲明相當于類模塊,作為一個"物體"對象
Type AllSeat
X As Single
Y As Single
End Type
Type FireX
DelayFps As Integer
FireType As Byte
FireSeat As AllSeat
End Type
'''''''''''''''''''''''''''''''''''''''''''''''''
Type SaveObject 'Eobject的存儲方式
SaveName As Integer ''與HdcE 聯系用ConX()
AllFps As Byte '具有幀
Width As Single '以單幀計算
Height As Single
ExplodeType As Byte '爆炸方式(聲音包含在爆炸方式中)
IsFlicker As Boolean '該項聲明有誤,改為是否往復,是即為往復,否則為循環
IsRotate As Boolean '是否自動轉1,0
Life As Integer '生命值
MaskColor As Long '掩模色
NextDelay As Integer '變換到下一個物體的幀數;0 即不變換
NextEObject As Integer '下一個變換物體
DelayFps As Byte 'Fps 延遲
FireSet(1 To 3) As FireX 'delayfps 是前面的延遲,若遇到0,則開始循環
HdcE As Long
HdcBack As Long
Sound As Integer
Reserved As Integer
Reserved2 As Long
End Type
Type RunObject 'Eobject的運行方式
IndexR As Integer
CombParent As Integer '如果作為一個組合式一部分,則=CombEobject.EName;此時MoveX 將不起作用
CurLife As Integer
CurFps As Byte '具有幀當中的循環記數
CurTotFps As Integer '已經運行總幀 ’如果路徑出錯,可以避免溢出
CurX As Single '以左上角記
CurY As Single
StartX As Integer
StartY As Integer
MoveType As Byte
PackageType As Byte
CurSpeedX As Single '******Cur*兩項要傳到 NextObject
CurSpeedY As Single
CurAngle As Single
BasSpeed As Single
BasAngle As Integer
CurDelay As Byte
DelayFps As Byte
FollowPlayer As Byte
CurFireFps(1 To 3) As Integer
End Type
'**********以下為完全設計一個靜態eobjec的存儲,地圖存儲,讀入,運行
Type SaveStaticEObject ''存儲用
SaveName As Integer '僅存儲時用
Width As Single
Height As Single
MaskColor As Long
Life As Integer
IsRotate As Boolean
IsFlick As Integer '該值已經無用,但作為 IsAutoRotate
FireSet(1 To 3) As FireX '如果FireDelayFps=0 ,表示不發射
HdcE As Long '讀入用,存儲是為0
HdcBack As Long
Sound As Integer
RotateWidth As Integer
Reserved2 As Long
End Type
Type RunStaticObject
IndexR As Integer
MoveType As Byte
PackageType As Byte
CurX As Single '以左上角計算
CurY As Single
StartX As Integer
StartY As Integer
CurSpeedX As Single
CurSpeedY As Single
CurAngle As Single '注意,該角度并非用來旋轉
CurAutoAngle As Integer ''旋轉的角度
BasSpeed As Single
BasAngle As Integer
RotateAngle As Integer
CurFps As Integer
CurTotFps As Integer
CurLife As Integer
CurDelay As Byte
FollowPlayer As Byte
CurFireFps(1 To 3) As Integer '用于計量特殊路徑子彈
End Type
'**********以上為完全設計一個靜態eobjec的存儲,地圖存儲,讀入,運行
'*************************因為飛機只有兩個,存儲和運行用同種方式
Type SavePlane '自己的飛機 Save=Run
SaveName As Integer
Width As Single
Height As Single
MaskColor As Long
Life As Integer
AllFps As Byte
ExplodeType As Byte
FireSeatX1 As Byte
FireSeatY1 As Byte
FireSeatX2 As Byte
FireSeatY2 As Byte
HdcE As Long '加
HdcBack As Long
Sound As Integer
Reserved As Integer
End Type
Type RunPlane
IndexR As Integer
HdcRun As Long
HdcBack As Long
CurLife As Integer
CurX As Single ''''''''''''
CurY As Single
CurSpeedX As Single ''''''''''''
'CurSpeedY As Single '在此可能無用
CurFps As Byte 'Fps 初始為中間值
CurFireType As Byte
CurPower As Byte '計量子彈的等級
CurBomb As Byte
CurBombNum As Byte
CurBombFps As Byte
CurDelay As Byte
End Type
'''''''''''''''''
Type SaveBackObject '背景物體,動態和靜態
SaveName As Integer
AllFps As Byte
Width As Single
Height As Single
MaskColor As Long
DelayFps As Byte
HdcE As Long
HdcBack As Long
Reserved As Double
Reserved2 As Long
End Type
Type RunBackObject
IndexR As Integer
CurFps As Byte
CurTotFps As Integer
CurDelay As Byte
CurX As Single
CurY As Single
CurSpeedY As Single
End Type
'**********以下為完全設計一個子彈《靜態》類型
Type SaveBullet
SaveName As Integer
Width As Byte '注意此為 byte
Height As Byte
MaskColor As Long
IsRotate As Boolean
Power As Integer
Sound As Integer
TypeMove As Byte '外加的
SpeedInit As Byte '外加的
TailColor As Long '如果不為0 ,則為拖尾子彈,其顏色是Tailcolor
IsFollow As Boolean
HdcE As Long
HdcBack As Long
RotateWidth As Integer
End Type
Type RunBullet
IndexR As Integer
CurX As Single
CurY As Single
CurSpeedX As Single
CurSpeedY As Single
CurAngle As Integer
IsRotate As Boolean
CurDelay As Byte
End Type
'**********以上為完全設計一個子彈類型
'以下為飛機用子彈
Type SaveMyBul
SaveName As Integer
Width As Byte
Height As Byte
MaskColor As Long
Power As Integer
Sound As Integer
HdcE As Long
HdcBack As Long '外加的
IsLeftToRight As Boolean
Reser As Integer
Reserved2 As Long
End Type
Type RunMyBul
IndexR As Integer
WhichPlayer As Byte 'p1=1,p2=2
MoveType As Byte '注意該項與 bullet 不同
CurX As Single
CurY As Single
CurSpeedX As Single
CurSpeedY As Single
CurAngle As Single '用于跟蹤彈,不定路徑子彈的角度,與 movetype 有關
'該角度以水平上垂直線為基線,左為負,右為正
CurDelay As Byte
End Type
'以下為爆炸
Type SaveExp ',隨機調用
SaveName As Integer
Width As Single
Height As Single
MaskColor As Long
AllFps As Byte
HdcE As Long
HdcBack As Long '
DelayFps As Byte '''''外加的
Reser As Byte
Sound As Integer
Reserved2 As Long
End Type
Type RunExp
IndexR As Integer
CurX As Single
CurY As Single
CurFps As Byte
CurDelay As Byte
End Type
'*******************************子彈撞擊時的火花
Type SaveCrash '只有 1 Fps
SaveName As Integer
Width As Byte
Height As Byte
MaskColor As Long
HdcE As Long
HdcBack As Long '外加的
AllFps As Byte
DelayFps As Byte
Sound As Integer
Reserved2 As Long
End Type
Type RunCrash
IndexR As Integer
CurX As Single
CurY As Single
CurFps As Byte
CurDelay As Byte
End Type
'以下為運動包裹
Type SavePac
SaveName As Integer
Width As Single
Height As Single
MaskColor As Long
AllFps As Byte
TypePac As Byte
DelayFps As Byte
HdcE As Long
HdcBack As Long '外加的
Sound As Integer
Reserved2 As Long
End Type
Type RunPac
IndexR As Integer
MoveType As Byte
CurX As Single
CurY As Single
CurSpeedX As Single
CurSpeedY As Single
CurAngle As Single
CurFps As Byte
CurTotalFps As Integer
CurDelay As Byte
End Type
'*******************************以上為包裹
'以下為雷
Type SaveBomb
SaveName As Integer
Width As Byte
Height As Byte
MaskColor As Long
IsDrawType As Byte '定義存儲的是畫法還是圖象
HdcE As Long
HdcBack As Long '外加的
Sound As Long
Reserved2 As Long
End Type
Type RunBomb
IndexR As Integer
IsDrawType As Byte
HdcRun As Long
CurDelay As Byte
CurX As Single
CurY As Single
End Type
Type SaveSingleMapObject
IsUsed As Byte
TypeObj As Byte
IndexOjb As Integer
SeatX As Integer
MoveType As Byte
IsPac As Byte
Reserved As Long
End Type
Type MapDoubleObject ''''在同一線上最多有10個物體
SingleObj(1 To 40) As SaveSingleMapObject '' 需要改為 20 個,存背景時必須截成段
End Type '其中動態背景需要單獨讀入
Type MapHead
MapHeadStr As String * 20
NameMap As String * 30
PassWord(1 To 19) As Byte
PL As Byte '計量pw
MapDescription As String * 50
Editor As String * 50
Reserved1 As String * 60
WidthTotal As Integer
HeightTotal As Integer
WidthShow As Integer
IsDrawBack As Boolean
BackColor As Long
SpeedMap As Byte
RandomPicture(1 To 10) As Integer
IsRandom As Boolean
SpeedBack As Byte
Reserved2 As String * 19
End Type
Type SaveMap
HeadMapFile As MapHead
ObjMap() As MapDoubleObject '縱行每隔 20 位存一次,橫行最多10個,估計 (6000*10\20)*12=*36 K
End Type '最多可以存 2500 個物體(除去最后1K 保留給ghost)
Public Function ReadPW(S As MapHead) As String
Dim Ls As Byte
Dim BufS As String
For Ls = 1 To S.PL
BufS = BufS & Chr((S.PassWord(Ls) + 156) Mod 256)
Next
ReadPW = BufS
End Function
'*******************************************
'Init
Public Sub InitSaveObject(NewE As SaveObject)
Dim NewObj As SaveObject
NewE = NewObj
End Sub
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -