1. 程式人生 > 其它 >魔塔之拯救白娘子~我的第一個VB6+DX8做的小遊戲原始碼~14開始遊戲-流程處理

魔塔之拯救白娘子~我的第一個VB6+DX8做的小遊戲原始碼~14開始遊戲-流程處理

技術標籤:我的程式vb6魔塔2d遊戲DX83d渲染

魔塔之拯救白娘子 完整工程下載地址:
二、遊戲開始後的流程控制:當初始化完成後,timerDraw.Enabled = True 開始進行流程控制。下邊的程式碼就是控制內容。
初始化→根據 主角所在的樓層判斷主角的位置並繪製主角→顯示主角的基本資訊(生命值、體力值、金幣、經驗值等等)→遊戲介面滑鼠點選判斷→男主角移動及方向處理→自動尋路處理→ 遊戲時主角顯示處理→迴圈判斷直到遊戲結束←

Case 1 '遊戲開始了
         

        If Winner = True And 對話視窗顯示標誌 = False Then
Running = 9: 讀檔標誌 = False: 判斷running狀態_初始化: BackPic.LoadGraph "image\魔塔背景\魔塔背景1.jpg", xgBLACK End If 遊戲中讀取地圖層次判斷 '判斷主角所在地圖並繪製主角 '主角資訊顯示 With 儲存基本的物體圖形陣列(14) '主角人物 '.SetDisplayRect 0, 0, 128, 64
' .SetScale 0.4, 0.4 .Cell = 1 .DrawGraph 500, 10 End With With 儲存基本的物體圖形陣列(39) '黃鑰匙 '.SetDisplayRect 0, 0, 128, 64 ' .SetScale 0.4, 0.4 .Cell = 1 .DrawGraph 500, 190 End With With
儲存基本的物體圖形陣列(40) '藍鑰匙 '.SetDisplayRect 0, 0, 128, 64 ' .SetScale 0.4, 0.4 .Cell = 1 .DrawGraph 600, 190 End With With 儲存基本的物體圖形陣列(41) '紅鑰匙 '.SetDisplayRect 0, 0, 128, 64 ' .SetScale 0.4, 0.4 .Cell = 1 .DrawGraph 700, 190 End With ' Call 背景Draw DrawText "等級:" & 人物資訊.角色等級, 550, 20, xgGREEN DrawText "生命:" & 人物資訊.角色生命值, 550, 50, xgRED DrawText "攻擊:" & 人物資訊.角色攻擊力, 550, 80, xgCYAN DrawText "防禦:" & 人物資訊.角色防禦值, 550, 110, xgCYAN DrawText "金幣:" & 人物資訊.角色持有的金幣, 550, 140, xgYELLOW DrawText "經驗值:" & 人物資訊.角色的經驗值, 550, 170, xgBLUE DrawText 勇者包裹.藍鑰匙數量, 550, 200, xgYELLOW DrawText 勇者包裹.黃鑰匙數量, 650, 200, xgBLUE DrawText 勇者包裹.紅鑰匙數量, 750, 200, xgRED If 勇者包裹.怪物手冊數量 = True Then With 儲存基本的物體圖形陣列(24) '怪物手冊 '.SetDisplayRect 0, 0, 128, 64 ' .SetScale 0.4, 0.4 .Cell = 1 .DrawGraph 500, 220 End With DrawText "按K鍵顯示/關閉怪物資料!", 550, 225, xgWHITE End If If 勇者包裹.風之羅盤數量 = True Then With 儲存基本的物體圖形陣列(46) '風之羅盤 '.SetDisplayRect 0, 0, 128, 64 ' .SetScale 0.4, 0.4 .Cell = 1 .DrawGraph 500, 260 End With DrawText "按J鍵穿越樓層", 550, 265, xgWHITE End If If 勇者包裹.鐵榔頭數量 = True Then With 儲存基本的物體圖形陣列(44) '鐵鋃頭 '.SetDisplayRect 0, 0, 128, 64 ' .SetScale 0.4, 0.4 .Cell = 1 .DrawGraph 500, 300 End With DrawText "找6層小偷挖出20層道路!", 550, 305, xgWHITE End If If 勇者包裹.幸運十字架數量 = True Then With 儲存基本的物體圖形陣列(47) '幸運十字架 '.SetDisplayRect 0, 0, 128, 64 ' .SetScale 0.4, 0.4 .Cell = 1 .DrawGraph 500, 340 End With DrawText "找1層小青增加能力!", 550, 345, xgWHITE '繪製22層樓梯 If 談話物件.NPC對話標誌_小青 = 4 And 地圖層號 = 22 Then Dim m() As String m = Split(地圖資料(8), ",") m(6) = 8 地圖資料(8) = 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) DrawText "22層通道已經開啟!", 550, 345, xgWHITE 談話物件.NPC對話標誌_小青 = 5 Erase m() End If End If If 勇者包裹.聖光徽的數量 > 0 Then With 儲存基本的物體圖形陣列(49) '聖光徽 '.SetDisplayRect 0, 0, 128, 64 ' .SetScale 0.4, 0.4 .Cell = 1 .DrawGraph 500, 380 End With DrawText "收集了:" & 勇者包裹.聖光徽的數量 & "枚聖光徽!", 550, 385, xgWHITE End If ' 背景Draw With 儲存按鈕的圖形陣列(17) '地圖編輯器 '.SetDisplayRect 0, 0, 128, 64 .SetScale 0.3, 0.3 .Cell = 1 .DrawGraph 450, 400 End With ' With 儲存按鈕的圖形陣列(15) '退出遊戲 ' '.SetDisplayRect 0, 0, 128, 64 ' .SetScale 0.4, 0.4 ' .Cell = 1 ' .DrawGraph 580, 450 ' End With With 儲存按鈕的圖形陣列(16) '返回遊戲主介面 '.SetDisplayRect 0, 0, 128, 64 .SetScale 0.3, 0.3 .Cell = 1 .DrawGraph 450, 430 End With 背景_動態Draw '男主角移動 遊戲介面滑鼠點選判斷 男主角移動及方向處理 遊戲時主角顯示處理 DrawText 提示資訊, 50, 500, xgRED '- 2 DrawText "地圖:第" & 地圖層號 & "層", 150, 10, xgCYAN '- 2 DrawText "X座標:" & 地圖XY座標.mapX座標(男主角移動.x / 32) & " Y座標:" & 地圖XY座標.mapY座標(男主角移動.y / 32), 100, 390, xgCYAN If 開啟關閉顯示怪物資訊 = 1 Then 顯示怪物資訊 End If If 自動尋路成功標誌 = True And 劃線計數器 > 0 Then For i = 0 To PathLength - 1 'To 0 Step -1 ' DrawLine AStarPath(i).x * 32, AStarPath(i).y * 32, AStarPath(i).x * 32 + 32, AStarPath(i).y * 32 + 32, xgGREEN ' DrawRectFill AStarPath(i).x * 32, AStarPath(i).y * 32, AStarPath(i).x * 32 + 32, AStarPath(i).y * 32 + 32, xgGREEN Next 自動移動處理 (劃線計數器) 劃線計數器 = 劃線計數器 - 1: If 劃線計數器 < 0 Then 劃線計數器 = 0 End If