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

魔塔之拯救白娘子~我的第一個VB6+DX8做的小遊戲原始碼~21開始遊戲-商店NPC

技術標籤:我的程式vb62d遊戲3d渲染魔塔dx8

魔塔之拯救白娘子 完整工程下載地址:
《魔塔之拯救白娘子》流程分析6:-商店NPC
設計介面:
商店NPC
子視窗程式碼:

Option Explicit


Dim 商店對話選擇編號 As Integer

Private Sub Command1_Click()
Unload Me
商店對話視窗顯示標誌 = False
End Sub


Private Sub Form_Load()
     

     '獲得主視窗的座標
     Me.Left = frmMain.Left + 1000
     Me.Top = frmMain.Top +
3000 Dim rtn As Long rtn = GetWindowLong(hWnd, GWL_EXSTYLE) rtn = rtn Or WS_EX_LAYERED SetWindowLong hWnd, GWL_EXSTYLE, rtn SetLayeredWindowAttributes hWnd, 0, 150, LWA_ALPHA '讓視窗在頂層 rtn = SetWindowPos(Me.hWnd, -1, 0, 0, 0, 0, 3) '取消視窗在頂層 'rtn = SetWindowPos(F_V.hwnd, -2, 0, 0, 0, 0, 3)
商店對話選擇編號 = 1 商店對話內容初始化 End Sub Sub 商店對話內容初始化() Select Case 商店對話ID Case 0 '3層商店 Label_商店選擇(0) = "25個金幣可以任意選擇一項:" Label_商店選擇(1) = "增加 800 點生命" Label_商店選擇(2) = "增加 4 點攻擊" Label_商店選擇(3) = "增加 4 點防禦" Image_顯示商店NPC圖示.Picture =
LoadPicture(App.Path & "\ico\商店中.bmp") Label1 = "商店:增強各種屬性!" Case 1 '5層老人 Label_商店選擇(0) = "通過經驗值升級人物等級:" Label_商店選擇(1) = "等級 +1(需要 100 點)" Label_商店選擇(2) = "攻擊 +5(需要 30 點)" Label_商店選擇(3) = "防禦 +5(需要 30 點)" Image_顯示商店NPC圖示.Picture = LoadPicture(App.Path & "\ico\老人.bmp") Label1 = "神祕老人:增強各種屬性!" Case 2 '5層商人 Label_商店選擇(0) = "使用金幣購買以下鑰匙:" Label_商店選擇(1) = "一把黃鑰匙(10 金幣)" Label_商店選擇(2) = "一把藍鑰匙(50 金幣)" Label_商店選擇(3) = "一把紅鑰匙(100 金幣)" Image_顯示商店NPC圖示.Picture = LoadPicture(App.Path & "\ico\商人.bmp") Label1 = "神祕商人:買賣各色鑰匙!" Case 3 '11層商店j Label_商店選擇(0) = "100個金幣可以任意選擇一項:" Label_商店選擇(1) = "增加 4000 點生命" Label_商店選擇(2) = "增加 20 點攻擊" Label_商店選擇(3) = "增加 20 點防禦" Image_顯示商店NPC圖示.Picture = LoadPicture(App.Path & "\ico\商店中中.bmp") Label1 = "商店:增強各種屬性!" Case 4 '12層老人2 Label_商店選擇(0) = "賣出鑰匙換取金幣:" Label_商店選擇(1) = "賣出一把黃鑰匙(7 金幣)" Label_商店選擇(2) = "賣出一把藍鑰匙(35 金幣)" Label_商店選擇(3) = "賣出一把紅鑰匙(70 金幣)" Image_顯示商店NPC圖示.Picture = LoadPicture(App.Path & "\ico\老人頭.bmp") Label1 = "神祕老人:買賣各色鑰匙!" Case 5 '13層商人2 Label_商店選擇(0) = "通過經驗值升級人物等級:" Label_商店選擇(1) = "等級 +3 (需要 270 點)" Label_商店選擇(2) = "攻擊 +20(需要 100 點)" Label_商店選擇(3) = "防禦 +20(需要 100 點)" Image_顯示商店NPC圖示.Picture = LoadPicture(App.Path & "\ico\商人2.bmp") Label1 = "神祕商人:增強各種屬性!" End Select Label_商店選擇(4) = "" End Sub Private Sub Label_商店選擇_Click(Index As Integer) Label_商店選擇(4) = "" Select Case Index Case 1 '選擇第1項 Select Case 商店對話ID Case 0 '25個金幣增加 800 點生命 If 人物資訊.角色持有的金幣 > 24 Then 人物資訊.角色生命值 = 人物資訊.角色生命值 + 800 人物資訊.角色持有的金幣 = 人物資訊.角色持有的金幣 - 25 Label_商店選擇(4) = "生命值增加了800點!" Else Label_商店選擇(4) = "金幣不夠!請先去賺錢!" End If Case 1 '等級 +1(需要 100 點經驗值) If 人物資訊.角色的經驗值 > 99 Then 人物資訊.角色等級 = 人物資訊.角色等級 + 1 人物資訊.角色攻擊力 = 人物資訊.角色攻擊力 + 5 人物資訊.角色防禦值 = 人物資訊.角色防禦值 + 5 人物資訊.角色生命值 = 人物資訊.角色生命值 + 1000 人物資訊.角色的經驗值 = 人物資訊.角色的經驗值 - 100 Label_商店選擇(4) = "等級增加了1級!" Else Label_商店選擇(4) = "經驗值不夠!請先去殺怪!" End If Case 2 '金幣購買鑰匙 一把黃鑰匙(10 金幣) If 人物資訊.角色持有的金幣 > 9 Then 勇者包裹.黃鑰匙數量 = 勇者包裹.黃鑰匙數量 + 1 人物資訊.角色持有的金幣 = 人物資訊.角色持有的金幣 - 10 Label_商店選擇(4) = "黃鑰匙增加了1把!" Else Label_商店選擇(4) = "金幣不夠!請先去賺錢!" End If Case 3 '100個金幣增加 4000 點生命 If 人物資訊.角色持有的金幣 > 99 Then 人物資訊.角色生命值 = 人物資訊.角色生命值 + 4000 人物資訊.角色持有的金幣 = 人物資訊.角色持有的金幣 - 100 Label_商店選擇(4) = "生命值增加了4000點!" Else Label_商店選擇(4) = "金幣不夠!請先去賺錢!" End If Case 4 '賣出一把黃鑰匙(7 金幣 If 勇者包裹.黃鑰匙數量 > 0 Then 勇者包裹.黃鑰匙數量 = 勇者包裹.黃鑰匙數量 - 1 人物資訊.角色持有的金幣 = 人物資訊.角色持有的金幣 + 7 Label_商店選擇(4) = "金幣增加了7!" Else Label_商店選擇(4) = "黃鑰匙數量不夠!請先去打怪!" End If Case 5 '等級 +3 (需要 270 點經驗) If 人物資訊.角色的經驗值 > 269 Then 人物資訊.角色的經驗值 = 人物資訊.角色的經驗值 - 270 人物資訊.角色等級 = 人物資訊.角色等級 + 1 人物資訊.角色攻擊力 = 人物資訊.角色攻擊力 + 15 人物資訊.角色防禦值 = 人物資訊.角色防禦值 + 15 人物資訊.角色生命值 = 人物資訊.角色生命值 + 3000 Label_商店選擇(4) = "等級增加了3級!" Else Label_商店選擇(4) = "經驗值不夠!請先去殺怪!" End If End Select Case 2 '選擇第2項 Select Case 商店對話ID Case 0 '25個金幣增加 增加 4 點攻擊 If 人物資訊.角色持有的金幣 > 24 Then 人物資訊.角色攻擊力 = 人物資訊.角色攻擊力 + 4 人物資訊.角色持有的金幣 = 人物資訊.角色持有的金幣 - 25 Label_商店選擇(4) = "攻擊力增加了4點!" Else Label_商店選擇(4) = "金幣不夠!請先去賺錢!" End If Case 1 '攻擊 +5(需要 30點經驗值) If 人物資訊.角色的經驗值 > 29 Then 人物資訊.角色攻擊力 = 人物資訊.角色攻擊力 + 5 人物資訊.角色的經驗值 = 人物資訊.角色的經驗值 - 30 Label_商店選擇(4) = "攻擊力增加了5點!" Else Label_商店選擇(4) = "經驗值不夠!請先去殺怪!" End If Case 2 '金幣購買鑰匙 一把藍鑰匙(50 金幣 If 人物資訊.角色持有的金幣 > 49 Then 勇者包裹.藍鑰匙數量 = 勇者包裹.藍鑰匙數量 + 1 人物資訊.角色持有的金幣 = 人物資訊.角色持有的金幣 - 50 Label_商店選擇(4) = "藍鑰匙增加了1把!" Else Label_商店選擇(4) = "金幣不夠!請先去賺錢!" End If Case 3 '100個金幣增加 增加 20 點攻擊 If 人物資訊.角色持有的金幣 > 99 Then 人物資訊.角色攻擊力 = 人物資訊.角色攻擊力 + 20 人物資訊.角色持有的金幣 = 人物資訊.角色持有的金幣 - 100 Label_商店選擇(4) = "攻擊力增加了20點!" Else Label_商店選擇(4) = "金幣不夠!請先去賺錢!" End If Case 4 '賣出一把藍鑰匙(35 金幣) If 勇者包裹.藍鑰匙數量 > 0 Then 勇者包裹.藍鑰匙數量 = 勇者包裹.藍鑰匙數量 - 1 人物資訊.角色持有的金幣 = 人物資訊.角色持有的金幣 + 35 Label_商店選擇(4) = "金幣增加了35!" Else Label_商店選擇(4) = "藍鑰匙數量不夠!請先去打怪!" End If Case 5 '攻擊 +20(需要 100 點經驗 If 人物資訊.角色的經驗值 > 99 Then 人物資訊.角色攻擊力 = 人物資訊.角色攻擊力 + 20 人物資訊.角色的經驗值 = 人物資訊.角色的經驗值 - 100 Label_商店選擇(4) = "攻擊力增加了20點!" Else Label_商店選擇(4) = "經驗值不夠!請先去殺怪!" End If End Select Case 3 '選擇第3項 Select Case 商店對話ID Case 0 '25個金幣增加 增加 4 點防禦 If 人物資訊.角色持有的金幣 > 24 Then 人物資訊.角色防禦值 = 人物資訊.角色防禦值 + 4 人物資訊.角色持有的金幣 = 人物資訊.角色持有的金幣 - 25 Label_商店選擇(4) = "防禦力增加了4點!" Else Label_商店選擇(4) = "金幣不夠!請先去賺錢!" End If Case 1 '防禦 +5(需要 30 點經驗值) If 人物資訊.角色的經驗值 > 29 Then 人物資訊.角色防禦值 = 人物資訊.角色防禦值 + 5 人物資訊.角色的經驗值 = 人物資訊.角色的經驗值 - 30 Label_商店選擇(4) = "防禦力增加了5點!" Else Label_商店選擇(4) = "經驗值不夠!請先去殺怪!" End If Case 2 '金幣購買鑰匙 一把紅鑰匙(100 金幣 If 人物資訊.角色持有的金幣 > 99 Then 勇者包裹.紅鑰匙數量 = 勇者包裹.紅鑰匙數量 + 1 人物資訊.角色持有的金幣 = 人物資訊.角色持有的金幣 - 100 Label_商店選擇(4) = "紅鑰匙增加了1把!" Else Label_商店選擇(4) = "金幣不夠!請先去賺錢!" End If Case 3 '100個金幣增加 增加 20 點防禦 If 人物資訊.角色持有的金幣 > 99 Then 人物資訊.角色防禦值 = 人物資訊.角色防禦值 + 20 人物資訊.角色持有的金幣 = 人物資訊.角色持有的金幣 - 100 Label_商店選擇(4) = "防禦力增加了20點!" Else Label_商店選擇(4) = "金幣不夠!請先去賺錢!" End If Case 4 '賣出一把紅鑰匙(70 金幣 If 勇者包裹.紅鑰匙數量 > 0 Then 勇者包裹.紅鑰匙數量 = 勇者包裹.紅鑰匙數量 - 1 人物資訊.角色持有的金幣 = 人物資訊.角色持有的金幣 + 70 Label_商店選擇(4) = "金幣增加了70!" Else Label_商店選擇(4) = "紅鑰匙數量不夠!請先去打怪!" End If Case 5 '防禦 +20(需要 100點經驗 If 人物資訊.角色的經驗值 > 99 Then 人物資訊.角色防禦值 = 人物資訊.角色防禦值 + 20 人物資訊.角色的經驗值 = 人物資訊.角色的經驗值 - 100 Label_商店選擇(4) = "防禦力增加了20點!" Else Label_商店選擇(4) = "經驗值不夠!請先去殺怪!" End If End Select 'Case 4 '退出 'Me.Hide '商店對話視窗顯示標誌 = False End Select End Sub Private Sub Timer1_Timer() If frmMain.WindowState = 1 Then Me.Hide Else Me.Show End If If Me.Left - 1000 <> frmMain.Left Then Me.Left = frmMain.Left + 1000 If Me.Top - 3000 <> frmMain.Top Then Me.Top = frmMain.Top + 3000 End Sub