生活随笔
收集整理的這篇文章主要介紹了
魔塔之拯救白娘子~我的第一个VB6+DX8做的小游戏源码~23开始游戏-存档管理
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
魔塔之拯救白娘子 完整工程下載地址:
魔塔之拯救白娘子》流程分析7:游戲存檔管理
作用如下:
①自動存檔,當上樓或者下樓的時候,會自動幫玩家存檔并截圖(吼吼,游戲次數(shù)長了,存檔容量可是幾百M哦,因為圖片沒有壓縮過,注意清理,硬盤空間大的請忽略)
②手動存檔:自動截圖并存檔
下邊是設計界面:
下邊是源碼:
Option Explicit
Dim 當前手動存檔圖形編號
As Integer
Dim 手動存檔條目
As Integer
Dim 自動存檔條目
As Integer
Dim 存檔路徑名字
As StringPrivate Sub Cmd_手動存檔_上一組_Click
()讀取手動存檔圖形數(shù)據(jù)
(2)
End SubPrivate Sub Cmd_手動存檔_下一組_Click
()讀取手動存檔圖形數(shù)據(jù)
(1)
End SubPrivate Sub Cmd_自動存檔_上一組_Click
()
讀取自動存檔圖形數(shù)據(jù)
(2)
End SubPrivate Sub Cmd_自動存檔_下一組_Click
()
讀取自動存檔圖形數(shù)據(jù)
(1)
End SubPrivate Sub Com_手動存檔_刪除_Click
(Index
As Integer)
On Error Resume Next
Kill App.Path
& "\save\"
& Label_存檔編號
(Index
) & ".bmp"
Kill App.Path
& "\save\"
& Label_存檔編號
(Index
) & ".ini"
iniFileName
= "手動存檔"
:
DelIniSec 手動存檔條目
+ Index
& "#"
手動存檔數(shù)量
= 手動存檔數(shù)量
- 1SetIniS "手動存檔數(shù)量
", "檔案數(shù)量"
, 手動存檔數(shù)量游戲存檔管理初始化
End SubPrivate Sub Com_自動存檔_刪除_Click
(Index
As Integer)
On Error Resume Next
Kill App.Path
& "\save\"
& Label_自動存檔編號
(Index
) & ".bmp"
Kill App.Path
& "\save\"
& Label_自動存檔編號
(Index
) & ".ini"
iniFileName
= "自動存檔"
:
DelIniSec 自動存檔條目
+ Index
& "#"
自動存檔數(shù)量
= 自動存檔數(shù)量
- 1SetIniS "自動存檔數(shù)量
", "檔案數(shù)量"
, 自動存檔數(shù)量游戲存檔管理初始化
End SubPrivate Sub Command1_Click
()
Running
= 9: BackPic.LoadGraph "
image\魔塔背景\魔塔背景
1.jpg"
, xgBLACK
Unload
Me
End SubPrivate Sub Command2_Click
()
Running
= 9:
BackPic.LoadGraph "
image\魔塔背景\魔塔背景
1.jpg"
, xgBLACK
Unload
Me
End SubPrivate Sub Command3_Click
()
On Error Resume Next
Kill App.Path
& "\save\
*.
*"
Kill App.Path
& "\自動存檔.ini"
Kill App.Path
& "\手動存檔.ini"
End SubPrivate Sub Form_Load
()
Me.
Left = frmMain.
LeftMe.Top
= frmMain.Top
+ 800Dim rtn
As Longrtn
= GetWindowLong
(hWnd
, GWL_EXSTYLE
)rtn
= rtn
Or WS_EX_LAYEREDSetWindowLong hWnd
, GWL_EXSTYLE
, rtnSetLayeredWindowAttributes hWnd
, 0, 200, LWA_ALPHA
rtn
= SetWindowPos
(Me.hWnd
, -1, 0, 0, 0, 0, 3)
游戲存檔管理初始化
End SubSub 游戲存檔管理初始化
()
On Error Resume Next
Dim j
As Integer
For j
= 0 To 3
Image_手動存檔
(j
).Visible
= False
Label_存檔編號
(j
).Visible
= False
Image_自動存檔
(j
).Visible
= False
Label_自動存檔編號
(j
).Visible
= False
Com_手動存檔_刪除
(j
).Visible
= False
Com_自動存檔_刪除
(j
).Visible
= False
NextCmd_手動存檔_上一組.Visible
= False
Text_手動存檔.Visible
= False
Cmd_手動存檔_下一組.Visible
= FalseCmd_自動存檔_上一組.Visible
= False
Text_自動存檔.Visible
= False
Cmd_自動存檔_下一組.Visible
= FalseiniFileName
= "手動存檔"
:
手動存檔數(shù)量
= GetIniS
("手動存檔數(shù)量
", "檔案數(shù)量"
, 手動存檔數(shù)量
)If 手動存檔數(shù)量
> 0 Then 手動存檔條目
= 手動存檔數(shù)量讀取手動存檔圖形數(shù)據(jù)
(0)End IfiniFileName
= "自動存檔"
:
自動存檔數(shù)量
= GetIniS
("自動存檔數(shù)量
", "檔案數(shù)量"
, 自動存檔數(shù)量
)
If 自動存檔數(shù)量
> 0 Then自動存檔條目
= 自動存檔數(shù)量
讀取自動存檔圖形數(shù)據(jù)
(0)
End IfEnd SubSub 讀取自動存檔圖形數(shù)據(jù)
(狀態(tài)
As Integer)
Dim k
As Integer
Dim j
As IntegerOn Error Resume Next
If 狀態(tài)
= 0 Then自動存檔條目
= 1ElseIf 狀態(tài)
= 1 Then自動存檔條目
= 自動存檔條目
+ 4:
If 自動存檔條目
> 自動存檔數(shù)量
Then 自動存檔條目
= 自動存檔數(shù)量
ElseIf 狀態(tài)
= 2 Then
自動存檔條目
= 自動存檔條目
- 4:If 自動存檔條目
< 4 Then 自動存檔條目
= 1End IfFor j
= 0 To 3
存檔路徑名字
= ""存檔路徑名字
= GetIniS
(自動存檔條目
+ j
& "#", "存檔截圖"
, 存檔路徑名字
)
If 存檔路徑名字
= "" Or 存檔路徑名字
= ".bmp" Then Exit For
Label_自動存檔編號
(j
) = 存檔路徑名字
Label_自動存檔編號
(j
).Visible
= True
Image_自動存檔
(j
).Picture
= LoadPicture
(App.Path
& "\save\"
& 存檔路徑名字
& ".bmp")
Image_自動存檔
(j
).Visible
= True
Com_自動存檔_刪除
(j
).Visible
= TrueNextText_自動存檔.Visible
= TrueText_自動存檔
= 自動存檔條目
& "/" & 自動存檔數(shù)量
If 自動存檔數(shù)量
> 4 ThenCmd_自動存檔_下一組.Visible
= True
Else
Cmd_自動存檔_下一組.Visible
= False
Cmd_自動存檔_上一組.Visible
= False
End IfIf 自動存檔條目
> 4 ThenCmd_自動存檔_上一組.Visible
= True
ElseCmd_自動存檔_上一組.Visible
= False
End IfEnd SubSub 讀取手動存檔圖形數(shù)據(jù)
(狀態(tài)
As Integer)
Dim k
As Integer
Dim j
As Integer
On Error Resume NextIf 狀態(tài)
= 0 Then手動存檔條目
= 1ElseIf 狀態(tài)
= 1 Then手動存檔條目
= 手動存檔條目
+ 4:
If 手動存檔條目
> 手動存檔數(shù)量
Then 手動存檔條目
= 手動存檔數(shù)量
ElseIf 狀態(tài)
= 2 Then
手動存檔條目
= 手動存檔條目
- 4:If 手動存檔條目
< 4 Then 手動存檔條目
= 1End IfFor j
= 0 To 3
存檔路徑名字
= ""存檔路徑名字
= GetIniS
(手動存檔條目
+ j
& "#", "存檔截圖"
, 存檔路徑名字
)If 存檔路徑名字
= "" Or 存檔路徑名字
= ".bmp" Then Exit For
Label_存檔編號
(j
) = 存檔路徑名字
Label_存檔編號
(j
).Visible
= True
Image_手動存檔
(j
).Picture
= LoadPicture
(App.Path
& "\save\"
& 存檔路徑名字
& ".bmp")
Image_手動存檔
(j
).Visible
= True
Com_手動存檔_刪除
(j
).Visible
= True
NextText_手動存檔.Visible
= True
Text_手動存檔
= 手動存檔條目
& "/" & 手動存檔數(shù)量
If 手動存檔數(shù)量
> 4 ThenCmd_手動存檔_下一組.Visible
= True
Else
Cmd_手動存檔_下一組.Visible
= False
Cmd_手動存檔_上一組.Visible
= False
End IfIf 手動存檔條目
> 4 ThenCmd_手動存檔_上一組.Visible
= True
ElseCmd_手動存檔_上一組.Visible
= False
End If
End Sub
Sub 讀存檔內(nèi)容
(存檔條目
As Integer, 存檔類別
As Boolean)
Dim j
As Integer
Dim k
As Integer
Running
= 1: 讀檔標志
= True: frmMain.判斷running狀態(tài)_初始化
:
If 存檔類別
= True Then
iniFileName
= "手動存檔"存檔路徑名字
= GetIniS
(手動存檔條目
+ j
& "#", "存檔截圖"
, 存檔路徑名字
)游戲進度.到過的最大層號
= GetIniS
("手動存檔數(shù)量
", "到過的最大層號"
, 游戲進度.到過的最大層號
)Else
iniFileName
= "自動存檔"
:
存檔路徑名字
= GetIniS
(存檔條目
& "#", "存檔截圖"
, 存檔路徑名字
)
游戲進度.到過的最大層號
= GetIniS
("自動存檔數(shù)量
", "到過的最大層號"
, 游戲進度.到過的最大層號
)End If人物信息.角色等級
= GetIniS
(存檔條目
& "#", "等級"
, 人物信息.角色等級
)
人物信息.角色生命值
= GetIniS
(存檔條目
& "#", "生命"
, 人物信息.角色生命值
)
人物信息.角色攻擊力
= GetIniS
(存檔條目
& "#", "攻擊"
, 人物信息.角色攻擊力
)
人物信息.角色防御值
= GetIniS
(存檔條目
& "#", "防御"
, 人物信息.角色防御值
)
人物信息.角色持有的金幣
= GetIniS
(存檔條目
& "#", "金幣"
, 人物信息.角色持有的金幣
)
人物信息.角色的經(jīng)驗值
= GetIniS
(存檔條目
& "#", "經(jīng)驗值"
, 人物信息.角色的經(jīng)驗值
)勇者包裹.黃鑰匙數(shù)量
= GetIniS
(存檔條目
& "#", "黃鑰匙數(shù)量"
, 勇者包裹.黃鑰匙數(shù)量
)
勇者包裹.藍鑰匙數(shù)量
= GetIniS
(存檔條目
& "#", "藍鑰匙數(shù)量"
, 勇者包裹.藍鑰匙數(shù)量
)
勇者包裹.紅鑰匙數(shù)量
= GetIniS
(存檔條目
& "#", "紅鑰匙數(shù)量"
, 勇者包裹.紅鑰匙數(shù)量
)
勇者包裹.鐵榔頭數(shù)量
= GetIniS
(存檔條目
& "#", "鐵榔頭數(shù)量"
, 勇者包裹.鐵榔頭數(shù)量
)
勇者包裹.風之羅盤數(shù)量
= GetIniS
(存檔條目
& "#", "風之羅盤數(shù)量"
, 勇者包裹.風之羅盤數(shù)量
)
勇者包裹.怪物手冊數(shù)量
= GetIniS
(存檔條目
& "#", "怪物手冊數(shù)量"
, 勇者包裹.怪物手冊數(shù)量
)
勇者包裹.星光神鋃數(shù)量
= GetIniS
(存檔條目
& "#", "星光神鋃數(shù)量"
, 勇者包裹.星光神鋃數(shù)量
)
勇者包裹.幸運十字架數(shù)量
= GetIniS
(存檔條目
& "#", "幸運十字架數(shù)量"
, 勇者包裹.幸運十字架數(shù)量
)
勇者包裹.圣光徽的數(shù)量
= GetIniS
(存檔條目
& "#", "圣光徽的數(shù)量"
, 勇者包裹.圣光徽的數(shù)量
)談話對象.NPC對話標志_小偷
= GetIniS
(存檔條目
& "#", "NPC對話標志_小偷"
, 談話對象.NPC對話標志_小偷
)
談話對象.NPC對話標志_小青
= GetIniS
(存檔條目
& "#", "NPC對話標志_小青"
, 談話對象.NPC對話標志_小青
)
談話對象.NPC對話標志_白娘子
= GetIniS
(存檔條目
& "#", "NPC對話標志_白娘子"
, 談話對象.NPC對話標志_白娘子
)
談話對象.NPC對話標志_老人
= GetIniS
(存檔條目
& "#", "NPC對話標志_老人"
, 談話對象.NPC對話標志_老人
)
談話對象.NPC對話標志_商人
= GetIniS
(存檔條目
& "#", "NPC對話標志_商人"
, 談話對象.NPC對話標志_商人
)
談話對象.NPC對話標志_冥靈魔王
= GetIniS
(存檔條目
& "#", "NPC對話標志_冥靈魔王"
, 談話對象.NPC對話標志_冥靈魔王
)
談話對象.NPC對話標志_紅衣魔王
= GetIniS
(存檔條目
& "#", "NPC對話標志_紅衣魔王"
, 談話對象.NPC對話標志_紅衣魔王
)
談話對象.NPC對話標志_紅衣大魔王
= GetIniS
(存檔條目
& "#", "NPC對話標志_紅衣大魔王"
, 談話對象.NPC對話標志_紅衣大魔王
)
男主角移動.移動步數(shù)
= GetIniS
(存檔條目
& "#", "男主角移動步數(shù)"
, 男主角移動.移動步數(shù)
)
男主角移動.移動方向
= GetIniS
(存檔條目
& "#", "男主角移動方向"
, 男主角移動.移動方向
)Dim 臨時字串a(chǎn)
As String, 臨時字串b
As String, 臨時字串c
As String, 臨時字串d
As String
On Error Resume Next臨時字串a(chǎn)
= GetIniS
(存檔條目
& "#", "游戲進度.新地圖"
, 臨時字串a(chǎn)
)
臨時字串b
= GetIniS
(存檔條目
& "#", "游戲進度.讀系統(tǒng)檔"
, 臨時字串b
)
臨時字串c
= GetIniS
(存檔條目
& "#", "游戲進度.上樓處理標志"
, 臨時字串c
)
臨時字串d
= GetIniS
(存檔條目
& "#", "游戲進度.下樓處理標志"
, 臨時字串d
)
Dim m1
() As String, m2
() As String, m3
() As String, m4
() As String
For j
= 0 To 99m1
= Split
(臨時字串a(chǎn)
, ",")游戲進度.新地圖
(j
) = m1
(j
)m2
= Split
(臨時字串b
, ",")游戲進度.讀系統(tǒng)檔
(j
) = m2
(j
)m3
= Split
(臨時字串c
, ",")游戲進度.上樓處理標志
(j
) = m3
(j
)m4
= Split
(臨時字串d
, ",")游戲進度.下樓處理標志
(j
) = m4
(j
)Next j
地圖層號
= GetIniS
(存檔條目
& "#", "地圖層數(shù)"
, 地圖層號
)FileCopy App.Path
& "\save\"
& 存檔路徑名字
& ".ini", App.Path
& "\mapX.ini"游戲進度.地圖當前層號
= 地圖層號
游戲進度.上樓處理標志
(地圖層號
) = True
frmMain.游戲中讀取地圖層次判斷
Erase m1
(), m2
(), m3
(), m4
()
Unload
Me
End SubPrivate Sub Image_手動存檔_DblClick
(Index
As Integer)
讀存檔內(nèi)容 手動存檔條目
+ Index
, True
End SubPrivate Sub Image_自動存檔_DblClick
(Index
As Integer)
讀存檔內(nèi)容 自動存檔條目
+ Index
, False
End SubPrivate Sub Timer1_Timer
()
If frmMain.WindowState
= 1 Then
Me.Hide
Else
Me.Show
End If
If Me.
Left <> frmMain.
Left Then Me.
Left = frmMain.
LeftIf Me.Top
- 800 <> frmMain.Top
Then Me.Top
= frmMain.Top
+ 800
End Sub
總結(jié)
以上是生活随笔為你收集整理的魔塔之拯救白娘子~我的第一个VB6+DX8做的小游戏源码~23开始游戏-存档管理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。