日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

魔塔之拯救白娘子~我的第一个VB6+DX8做的小游戏源码~8地图编辑器-处理流程

發布時間:2023/12/29 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 魔塔之拯救白娘子~我的第一个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地图编辑器-处理流程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。