日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

魔塔之拯救白娘子~我的第一个VB6+DX8做的小游戏源码~23开始游戏-存档管理

發布時間:2023/12/29 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 魔塔之拯救白娘子~我的第一个VB6+DX8做的小游戏源码~23开始游戏-存档管理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

魔塔之拯救白娘子 完整工程下載地址:
魔塔之拯救白娘子》流程分析7:游戲存檔管理
作用如下:
①自動存檔,當上樓或者下樓的時候,會自動幫玩家存檔并截圖(吼吼,游戲次數長了,存檔容量可是幾百M哦,因為圖片沒有壓縮過,注意清理,硬盤空間大的請忽略)
②手動存檔:自動截圖并存檔

下邊是設計界面:

下邊是源碼:

Option Explicit Dim 當前手動存檔圖形編號 As Integer Dim 手動存檔條目 As Integer Dim 自動存檔條目 As Integer Dim 存檔路徑名字 As StringPrivate Sub Cmd_手動存檔_上一組_Click()讀取手動存檔圖形數據 (2) End SubPrivate Sub Cmd_手動存檔_下一組_Click()讀取手動存檔圖形數據 (1) End SubPrivate Sub Cmd_自動存檔_上一組_Click() 讀取自動存檔圖形數據 (2) End SubPrivate Sub Cmd_自動存檔_下一組_Click() 讀取自動存檔圖形數據 (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 & "#" 'DelIniKey iniFileName, 自動存檔條目 + Index & "#" 手動存檔數量 = 手動存檔數量 - 1SetIniS "手動存檔數量", "檔案數量", 手動存檔數量游戲存檔管理初始化 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 & "#" 'DelIniKey iniFileName, 自動存檔條目 + Index & "#" 自動存檔數量 = 自動存檔數量 - 1SetIniS "自動存檔數量", "檔案數量", 自動存檔數量游戲存檔管理初始化 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 = "手動存檔": 手動存檔數量 = GetIniS("手動存檔數量", "檔案數量", 手動存檔數量)If 手動存檔數量 > 0 Then 'App.Path & "\save\" &手動存檔條目 = 手動存檔數量讀取手動存檔圖形數據 (0)End IfiniFileName = "自動存檔": 自動存檔數量 = GetIniS("自動存檔數量", "檔案數量", 自動存檔數量) '存放自動存檔數量 App.Path & "\save\" & If 自動存檔數量 > 0 Then自動存檔條目 = 自動存檔數量 讀取自動存檔圖形數據 (0) End IfEnd SubSub 讀取自動存檔圖形數據(狀態 As Integer) '0 第一次讀 '1向后 '2向前 Dim k As Integer Dim j As IntegerOn Error Resume Next 'Dim 存檔路徑名字 As StringIf 狀態 = 0 Then自動存檔條目 = 1ElseIf 狀態 = 1 Then自動存檔條目 = 自動存檔條目 + 4: If 自動存檔條目 > 自動存檔數量 Then 自動存檔條目 = 自動存檔數量ElseIf 狀態 = 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_自動存檔 = 自動存檔條目 & "/" & 自動存檔數量If 自動存檔數量 > 4 ThenCmd_自動存檔_下一組.Visible = True Else Cmd_自動存檔_下一組.Visible = False Cmd_自動存檔_上一組.Visible = False End IfIf 自動存檔條目 > 4 ThenCmd_自動存檔_上一組.Visible = True ElseCmd_自動存檔_上一組.Visible = False End IfEnd SubSub 讀取手動存檔圖形數據(狀態 As Integer) '0 第一次讀 '1向后 '2向前 Dim k As Integer Dim j As Integer 'Dim 存檔路徑名字 As String On Error Resume NextIf 狀態 = 0 Then手動存檔條目 = 1ElseIf 狀態 = 1 Then手動存檔條目 = 手動存檔條目 + 4: If 手動存檔條目 > 手動存檔數量 Then 手動存檔條目 = 手動存檔數量ElseIf 狀態 = 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 '第一組1-4 '第二組5-8 '第三組9-12 '第四組13-16 '第5組 17-20Text_手動存檔 = 手動存檔條目 & "/" & 手動存檔數量If 手動存檔數量 > 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 讀存檔內容(存檔條目 As Integer, 存檔類別 As Boolean) '根據編號讀取相應的存檔來初始化游戲 'Dim 存檔路徑名字 As String Dim j As Integer Dim k As Integer Running = 1: 讀檔標志 = True: frmMain.判斷running狀態_初始化: ' BackPic.LoadGraph "image\魔塔背景\魔塔背景3.jpg", xgBLACK ' If 存檔類別 = True Then ' iniFileName = "手動存檔"存檔路徑名字 = GetIniS(手動存檔條目 + j & "#", "存檔截圖", 存檔路徑名字)游戲進度.到過的最大層號 = GetIniS("手動存檔數量", "到過的最大層號", 游戲進度.到過的最大層號)Else iniFileName = "自動存檔": 存檔路徑名字 = GetIniS(存檔條目 & "#", "存檔截圖", 存檔路徑名字) 游戲進度.到過的最大層號 = GetIniS("自動存檔數量", "到過的最大層號", 游戲進度.到過的最大層號)End If人物信息.角色等級 = GetIniS(存檔條目 & "#", "等級", 人物信息.角色等級) 人物信息.角色生命值 = GetIniS(存檔條目 & "#", "生命", 人物信息.角色生命值) 人物信息.角色攻擊力 = GetIniS(存檔條目 & "#", "攻擊", 人物信息.角色攻擊力) 人物信息.角色防御值 = GetIniS(存檔條目 & "#", "防御", 人物信息.角色防御值) 人物信息.角色持有的金幣 = GetIniS(存檔條目 & "#", "金幣", 人物信息.角色持有的金幣) 人物信息.角色的經驗值 = GetIniS(存檔條目 & "#", "經驗值", 人物信息.角色的經驗值)勇者包裹.黃鑰匙數量 = GetIniS(存檔條目 & "#", "黃鑰匙數量", 勇者包裹.黃鑰匙數量) 勇者包裹.藍鑰匙數量 = GetIniS(存檔條目 & "#", "藍鑰匙數量", 勇者包裹.藍鑰匙數量) 勇者包裹.紅鑰匙數量 = GetIniS(存檔條目 & "#", "紅鑰匙數量", 勇者包裹.紅鑰匙數量) 勇者包裹.鐵榔頭數量 = GetIniS(存檔條目 & "#", "鐵榔頭數量", 勇者包裹.鐵榔頭數量) 勇者包裹.風之羅盤數量 = GetIniS(存檔條目 & "#", "風之羅盤數量", 勇者包裹.風之羅盤數量) 勇者包裹.怪物手冊數量 = GetIniS(存檔條目 & "#", "怪物手冊數量", 勇者包裹.怪物手冊數量) 勇者包裹.星光神鋃數量 = GetIniS(存檔條目 & "#", "星光神鋃數量", 勇者包裹.星光神鋃數量) 勇者包裹.幸運十字架數量 = GetIniS(存檔條目 & "#", "幸運十字架數量", 勇者包裹.幸運十字架數量) 勇者包裹.圣光徽的數量 = GetIniS(存檔條目 & "#", "圣光徽的數量", 勇者包裹.圣光徽的數量)談話對象.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對話標志_紅衣大魔王)'男主角移動.x = GetIniS(存檔條目 & "#", "男主角移動X", 男主角移動.x) '男主角移動.y = GetIniS(存檔條目 & "#", "男主角移動Y", 男主角移動.y) 男主角移動.移動步數 = GetIniS(存檔條目 & "#", "男主角移動步數", 男主角移動.移動步數) 男主角移動.移動方向 = GetIniS(存檔條目 & "#", "男主角移動方向", 男主角移動.移動方向)Dim 臨時字串a As String, 臨時字串b As String, 臨時字串c As String, 臨時字串d As String On Error Resume Next臨時字串a = GetIniS(存檔條目 & "#", "游戲進度.新地圖", 臨時字串a) 臨時字串b = GetIniS(存檔條目 & "#", "游戲進度.讀系統檔", 臨時字串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, ",")游戲進度.新地圖(j) = m1(j)m2 = Split(臨時字串b, ",")游戲進度.讀系統檔(j) = m2(j)m3 = Split(臨時字串c, ",")游戲進度.上樓處理標志(j) = m3(j)m4 = Split(臨時字串d, ",")游戲進度.下樓處理標志(j) = m4(j)Next j '改寫臨時地圖 地圖層號 = GetIniS(存檔條目 & "#", "地圖層數", 地圖層號)FileCopy App.Path & "\save\" & 存檔路徑名字 & ".ini", App.Path & "\mapX.ini"游戲進度.地圖當前層號 = 地圖層號 '游戲進度.讀玩家檔 = True 'frmMain.讀臨時地圖數據 (地圖層號) 'frmMain.清除地圖上多余的主角 'frmMain.寫臨時地圖數據 (0) '游戲進度.上樓處理標志(地圖層號) = True 游戲進度.上樓處理標志(地圖層號) = True frmMain.游戲中讀取地圖層次判斷 Erase m1(), m2(), m3(), m4() Unload Me End SubPrivate Sub Image_手動存檔_DblClick(Index As Integer) 讀存檔內容 手動存檔條目 + Index, True End SubPrivate Sub Image_自動存檔_DblClick(Index As Integer) '處理讀檔 讀存檔內容 自動存檔條目 + Index, False End SubPrivate Sub Timer1_Timer() '根據主窗口調整背身窗口 '如果主窗口變小就隱身 If frmMain.WindowState = 1 Then Me.Hide Else Me.Show End If '如果主窗口移動就跟著移動 ' Me.Left = frmMain.Left + 1000 ' Me.Top = frmMain.Top + 3000If Me.Left <> frmMain.Left Then Me.Left = frmMain.LeftIf Me.Top - 800 <> frmMain.Top Then Me.Top = frmMain.Top + 800 End Sub

總結

以上是生活随笔為你收集整理的魔塔之拯救白娘子~我的第一个VB6+DX8做的小游戏源码~23开始游戏-存档管理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。