魔塔之拯救白娘子 完整工程下载地址:
魔塔之拯救白娘子》流程分析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开始游戏-存档管理相关推荐

  1. 魔塔之拯救白娘子~我的第一个VB6+DX8做的小游戏源码~20开始游戏-对话处理

    魔塔之拯救白娘子 完整工程下载地址: <魔塔之拯救白娘子>流程分析6:对话处理 游戏的对话处理比较简单,仅仅是根据游戏流程提供简单的对话系统,没有涉及复杂的东西.下边是设计的窗体: Opt ...

  2. 魔塔之拯救白娘子~我的第一个VB6+DX8做的小游戏源码~24开始游戏-屏幕截图

    魔塔之拯救白娘子 完整工程下载地址: 魔塔之拯救白娘子>流程分析8:屏幕截图和通用申明 有网友问我主窗口设计界面是什么样子?下图就是:frmMain.frm 设计界面非常清爽,只有一个tiemr ...

  3. 魔塔之拯救白娘子~我的第一个VB6+DX8做的小游戏源码~18开始游戏-物体碰撞检测

    魔塔之拯救白娘子 完整工程下载地址: <魔塔之拯救白娘子>流程分析4:物体碰撞检测 处理方式分2步,第一步是游戏时主角显示处理:当主角移动时需要擦除上一个坐标位的主角,然后在新位置上放置主 ...

  4. 魔塔之拯救白娘子~我的第一个VB6+DX8做的小游戏源码~16开始游戏-自动寻路(A星算法)

    魔塔之拯救白娘子 完整工程下载地址: <魔塔之拯救白娘子>流程分析2: ⑤游戏界面鼠标点击判断以及自动寻路: 自动寻路的效果如下: 源码如下: Sub 游戏界面鼠标点击判断() Dim m ...

  5. 魔塔之拯救白娘子~我的第一个VB6+DX8做的小游戏源码~13开始游戏-初始化

    魔塔之拯救白娘子 完整工程下载地址: 上几节介绍了地图编辑器编写情况,现在开始介绍<魔塔之拯救白娘子>开始游戏后的处理. 游戏开始后的流程处理如下: 一.初始化: 当running=1的时 ...

  6. 魔塔之拯救白娘子~我的第一个VB6+DX8做的小游戏源码~14开始游戏-流程处理

    魔塔之拯救白娘子 完整工程下载地址: 二.游戏开始后的流程控制:当初始化完成后,timerDraw.Enabled = True 开始进行流程控制.下边的代码就是控制内容. 初始化→根据 主角所在的楼 ...

  7. 魔塔之拯救白娘子~我的第一个VB6+DX8做的小游戏源码~15开始游戏-地图层次判断

    魔塔之拯救白娘子 完整工程下载地址: <魔塔之拯救白娘子>流程分析: 初始化→根据 主角所在的楼层判断主角的位置并绘制主角→显示主角的基本信息(生命值.体力值.金币.经验值等等)→游戏界面 ...

  8. 魔塔之拯救白娘子~我的第一个VB6+DX8做的小游戏源码~19开始游戏-战斗处理

    魔塔之拯救白娘子 完整工程下载地址: <魔塔之拯救白娘子>流程分析5:战斗处理 这个游戏的战斗系统比较简单,就是对比双方的数据,打的过就显示打斗过程,打不过就提示"打不过&quo ...

  9. 魔塔之拯救白娘子~我的第一个VB6+DX8做的小游戏源码~21开始游戏-商店NPC

    魔塔之拯救白娘子 完整工程下载地址: <魔塔之拯救白娘子>流程分析6:-商店NPC 设计界面: 子窗口代码: Option ExplicitDim 商店对话选择编号 As IntegerP ...

最新文章

  1. 在没有深度学习的情况下找到道路
  2. 详解 Python 源码之对象机制
  3. 【蓝桥杯-第五届】 啤酒和饮料
  4. 五十九、使用ZXing生成二维码
  5. 1900美元,你想要机器女朋友,还是想要女朋友?
  6. 在C#中调用一个dll函数,其中有个参数为 hdc,如何在C#中得到这个值并传给这个参数呢?
  7. Android之ndk编译出现这个错误error: unused variable ‘a‘ [-Werror=unused-variable]
  8. 统一资源管理与调度平台(系统)介绍
  9. win7不显示移动硬盘_win7系统电脑开机不显示桌面?
  10. WCF分布式安全开发实践(1):传输安全模式之匿名客户端:Transport_None_WSHttpBinding
  11. 封装Js事件代理方法
  12. 计算机拆装与维修技能综述,综述虚拟机在计算机硬件组装与维护教学中的应用...
  13. JAVA继承类初始化顺序
  14. 勇芳软件测试,勇芳自动刷分精灵
  15. 与孩子一起学编程06章
  16. 图书馆网计算机编目管理系统,浅谈图书编目计算机管理系统
  17. jj斗地主服务器维护几点能好使啊,JJ斗地主比赛常见问题
  18. 对于一些360文件粉碎无法删除的解决方案
  19. AIMD response function的一般推导
  20. linux检测路径是否存在,不存在则创建指定路径

热门文章

  1. 饼状图的实现方法html,D3.js实现饼状图的方法详解
  2. nginx本地服务器代理
  3. 广播模块加继电器怎么接线_继电器模块SR0820AC安装方法
  4. python杨辉三角两种写法详解
  5. 概率论与数理统计--刷题题库
  6. 【智慧医疗】医疗影像
  7. 快速完成兼职外包开发任务
  8. 在Manjaro Linux( ArchLinux )上用Chrome走代理端口配置
  9. Protues的一个简单51程序仿真
  10. 【LaTex】LaTex 极简使用教程(后续加附视频讲解链接)