魔塔之拯救白娘子~我的第一个VB6+DX8做的小游戏源码~8地图编辑器-处理流程
魔塔之拯救白娘子 完整工程下載地址:
《魔塔之拯救白娘子》處理流程:
①在主游戲窗口里添加一個timer控件,名稱為:timerDraw 作用:根據running狀態繪制不同的背景
Enabled:false 當游戲初始化完畢后開啟,進行不同狀態的背景繪制,是整個程序的中控
Interval:10 時間為10毫秒,數字越少觸發越多。這個數值影響FPS
②timerDraw 對地圖編輯器的處理流程:
PaintScreen 0 '以黑色擦除屏幕RenderBegin '開始渲染BackPic.DrawGraph 0, 0 '背景繪制Select Case Running```Case 8 '地圖編輯器If 地圖層號 = -1 Then地圖層號 = 1讀取地圖數據 (地圖層號)寫臨時地圖數據 (0)End If地圖編輯器_初始化背景_動態DrawWith 儲存按鈕的圖形數組(16) '返回游戲主界面'.SetDisplayRect 0, 0, 128, 64.SetScale 0.3, 0.3.Cell = 1.DrawGraph 450, 430End With'對鼠標進行判斷地圖編輯界面鼠標點擊判斷地圖編輯器界面_圖形說明地圖編輯器界面_選中的圖片彈跳顯示'清空地圖處理If 地圖編輯器界面按鈕按下標志_清空地圖 = True Then地圖層號 = -1: 地圖編輯器界面按鈕按下標志_清空地圖 = FalseEnd If'保存地圖處理If 地圖編輯器界面按鈕按下標志_保存地圖 = True And 地圖編輯器界面_臨時地圖標志 = True Then地圖編輯器界面按鈕按下標志_保存地圖 = False' If 地圖編輯器界面_修正地圖 = False Then地圖最大層號 = 地圖最大層號 + 1 ' End If寫地圖數據_保存地圖編輯器界面_臨時地圖標志 = False地圖編輯器界面_修正地圖 = FalseDrawText "保存" & 地圖最大層號 & "#地圖成功!", 150, 500, xgGREENElse地圖編輯器界面按鈕按下標志_保存地圖 = FalseEnd If'載入地圖處理If 地圖編輯器界面按鈕按下標志_載入地圖 = True Then地圖編輯器界面_載入地圖處理End IfDrawText "地圖總數:" & 地圖最大層號, 100, 10, xgRED 'DrawText "當前正在編輯的地圖編號:" & 當前正在編輯的地圖編號, 100, 420, xgREDEnd SelectDrawText "FPS:" & GetFPS, 10, 10, xgREDRenderEnd '結束渲染LimitFPS 200 '限制FPS下邊是流程解釋:```vbnetIf 地圖層號 = -1 Then地圖層號 = 1讀取地圖數據 (地圖層號)寫臨時地圖數據 (0)End If①地圖層號:這個變量用來儲存當前的地圖編號,在游戲狀態就是角色所在的層號,在地圖編輯器界面就是地圖編輯的編號。所以要注意這點,一個變量2種用途。
這段代碼的作用:在編輯器狀態,如果你想清空地圖所有內容,或者第一次開始編輯地圖,就將地圖層號設置為-1。那么這段代碼就將 地圖層號 設置為1,也就是初始化的0#地圖(注意:編號從1號開始)
②讀取地圖數據(地圖層號):這個子程序:根據地圖層號讀取map.ini(地圖數據保存在這個文件里)里的地圖數據。代碼如下:
Sub 讀取地圖數據(地圖層號)Dim m() As StringDim k As IntegerDim j As Integer''讀地圖總數iniFileName = "map"地圖最大層號 = GetIniS("地圖", "總數", 地圖最大層號)If 地圖最大層號 < 1 Or 地圖最大層號 > 99 Then MsgBox "地圖的配置文件有錯,將恢復到初始狀態!": 寫地圖數據_恢復數據: 地圖層號 = 2: 地圖最大層號 = GetIniS("地圖", "總數", 地圖最大層號) '讀地圖數據 For k = 0 To 12地圖數據(k) = GetIniS(地圖層號 & "#", "地圖數據(" & k & ")", 地圖數據(k))'Debug.Print 地圖數據(k)Next k End Sub地圖數據(k):存放地圖數據的一個數組。全局變量。
③寫臨時地圖數據(0):作用:將當前的地圖數據暫存到mapx.ini ,寫入多少#就輸入多少#。注意:這里的0#地圖其實就是當前地圖層號的副本。在游戲中就是當前人物所在層的副本。
Sub 寫臨時地圖數據(臨時值 As Integer) '地圖編輯器時調用Dim k As Integer If 臨時值 < 0 Or 臨時值 > 99 Then Exit Sub 'MsgBox "寫臨時地圖數據錯誤!":iniFileName = "mapX"For k = 0 To 12SetIniS 臨時值 & "#", k, 地圖數據(k)Next k End Sub總結:當第一次進入地圖編輯器的時候或者使用清空地圖按鈕的時候,就將 地圖層號置為-1。然后timerDraw 子程序 將地圖層號置為1,并讀取1#地圖,并將(map.ini)1#地圖寫入臨時地圖(mapX.ini)0#里。這也可以當成地圖編輯器地圖的初始化來看待。
總結
以上是生活随笔為你收集整理的魔塔之拯救白娘子~我的第一个VB6+DX8做的小游戏源码~8地图编辑器-处理流程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 赛门铁克企业防火墙曝已存在30年漏洞
- 下一篇: 互换性与测量技术——表面粗糙度选取和标注