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

魔塔之拯救白娘子 完整工程下载地址:
《魔塔之拯救白娘子》流程分析:
初始化→根据 主角所在的楼层判断主角的位置并绘制主角→显示主角的基本信息(生命值、体力值、金币、经验值等等)→游戏界面鼠标点击判断→男主角移动及方向处理→自动寻路处理→ 游戏时主角显示处理→循环判断直到游戏结束←
①首先判断玩家是不是赢了游戏,如果赢了游戏就返回到最开始的选择游戏界面。源代码如下:

If Winner = True And 对话窗口显示标志 = False Then
         Running = 9: 读档标志 = False: 判断running状态_初始化: BackPic.LoadGraph "image\魔塔背景\魔塔背景1.jpg", xgBLACK
    End If

②游戏中读取地图层次判断:根据地图层号判断角色所处位置。

Sub 游戏中读取地图层次判断()
  On Error Resume Next
  Dim m() As String

        '新地图处理
       If 游戏进度.新地图(地图层号) = True Then
       '①新地图处理的时候,读原始地图数据,
       读取地图数据 (地图层号)
            
          '将主角所在位置设置为每一层的下楼位置
          修改主角位置 主角地图上每层初始坐标.下楼图形坐标X(地图层号), 主角地图上每层初始坐标.下楼图形坐标Y(地图层号), 14
  
          '并将地图镜像发送到临时地图数据0#
         ' 写临时地图数据 (0)
          '③将新地图处理标志设为False,同时将地图当前层号设为本层
          
          游戏进度.新地图(地图层号) = False
          游戏进度.地图当前层号 = 地图层号
       End If
       
       '上楼处理
        '上楼处理'2 楼上3楼的话,就要从10,6 显示卡通
          If 游戏进度.上楼处理标志(地图层号) = True Then
          
          读临时地图数据 (地图层号)
          '清除地图上多余的主角
          '将主角的位置设置于下楼的楼图形处
          '关掉上楼梯地方的角色显示
          
          '开启下楼梯地方的角色处理
           修改主角位置 主角地图上每层初始坐标.上楼图形坐标X(地图层号), 主角地图上每层初始坐标.上楼图形坐标Y(地图层号), 1

           修改主角位置 主角地图上每层初始坐标.下楼图形坐标X(地图层号), 主角地图上每层初始坐标.下楼图形坐标Y(地图层号), 14
          游戏进度.上楼处理标志(地图层号) = False
          游戏进度.地图当前层号 = 地图层号
          End If
       
       '下楼处理
      ' ①根据层数,读取临时地图数据,此数据在上楼时已经保存过
      
       
       If 游戏进度.下楼处理标志(地图层号) = True Then
          
          读临时地图数据 (地图层号)
        '② '将主角的位置定位于上楼的位置
        '清除地图上多余的主角
       '下楼的话,将主角放在上楼的楼图形,同时将下楼的楼图形处主角的涂掉
         修改主角位置 主角地图上每层初始坐标.下楼图形坐标X(地图层号), 主角地图上每层初始坐标.下楼图形坐标Y(地图层号), 1

         修改主角位置 主角地图上每层初始坐标.上楼图形坐标X(地图层号), 主角地图上每层初始坐标.上楼图形坐标Y(地图层号), 14
'
       游戏进度.地图当前层号 = 地图层号
       游戏进度.下楼处理标志(地图层号) = False
        
        End If
        Dim k As Integer
      '读档处理
        If 游戏进度.读玩家档 = True Then

         读临时地图数据 (地图层号)
'         写临时地图数据 (地图层号)
          游戏进度.地图当前层号 = 地图层号
          游戏进度.读玩家档 = False
        End If         
End Sub
         

用到的修改主角位置子程序:

Sub 修改主角位置(要修改的X坐标 As Integer, 要修改的Y坐标 As Integer, 要修改的内容 As Integer)
    On Error Resume Next
    Dim m() As String
    
         男主角移动.x = 地图XY坐标.mapX坐标(要修改的X坐标)
         男主角移动.y = 地图XY坐标.mapY坐标(要修改的Y坐标)
         
         m = Split(地图数据(男主角移动.x / 32), ",")
         m(男主角移动.y / 32) = 要修改的内容
    
         地图数据(男主角移动.x / 32) = m(0) & "," & m(1) & "," & m(2) & "," & m(3) & "," & m(4) & "," & m(5) & "," & m(6) & "," & m(7) & "," & m(8) & "," & m(9) & "," & m(10) & "," & m(11) & "," & m(12)
                  
          写临时地图数据 (0)
End Sub

③显示主角的基本信息(生命值、体力值、金币、经验值等等):见前一节源码
④背景_动态Draw:绘制所有的背景以及卡通,并让卡通动起来。源码见 完整的内容

猜你喜欢

转载自blog.csdn.net/gosub60/article/details/112861408