魔塔之拯救白娘子~我的第一個VB6+DX8做的小遊戲原始碼~14開始遊戲-流程處理
阿新 • • 發佈:2021-01-21
魔塔之拯救白娘子 完整工程下載地址:
二、遊戲開始後的流程控制:當初始化完成後,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