用VB開發即時戰略游戲

發表于:2007-07-14來源:作者:點擊數: 標簽:
我先解釋一下設計方法。 1.這叫棋子操縱模式。 2.回合制采用單方棋子操縱模式,也就是敵方棋子由電腦操縱,使用者棋子由使用者操縱。 3.即時制采用雙方棋子操縱模式,也就是雙方棋子都由電腦操作,只是電腦允許使用者改變我方棋子行為模式而已。 4.我們可以
我先解釋一下設計方法。

   1.這叫棋子操縱模式。

   2.回合制采用單方棋子操縱模式,也就是敵方棋子由電腦操縱,使用者棋子由使用者操縱。

   3.即時制采用雙方棋子操縱模式,也就是雙方棋子都由電腦操作,只是電腦允許使用者改變我方棋子行為模式而已。

   4.我們可以這么想,電腦由一個時間器(Timer) 隔一段時間去動一下敵我雙方的所有旗子,也就是說使用者如果不動作,其實就是看電腦自己在下棋。

   5.但一旦使用者指定某棋子時,該棋子移動指標就被標為 False ,如此電腦在每一棋步中碰到該棋子就不會對它有所動作,但其他棋子則繼續動作,直到使用者設定完該棋子行動方式后,行動指標恢復為 True ,意思就是繼續交還電腦控管。

   6.用一個最簡單的 VB 模型來說明:

Type 棋子模式
 行動指標 As Boolean
 行為模式 As SomeValue
End Type

'假設有十顆棋子

Dim 棋子(9) AS 棋子模式
Sub Form_Load()
 Dim I As Long

 棋子(0).行為模式=敵A
 棋子(1).行為模式=敵B
 .
 .
 棋子(5).行為模式=我A
 棋子(6).行為模式=我B
 .
 .
 For I=0 To Ubound(棋子)-1
  棋子.行動指標=True
 Next
End Sub

Sub 棋子_Click(Index As Integer)
 棋子(Index).行動指標=False
 Call 行為模式改變(Index)
End Sub

Sub 行為模式改變(Byval 傳入值)
 '...............行為模式改變設定
 棋子(傳入值).行為模式 =新行為模式
 棋子(傳入值).行動指標=True
End Sub

Sub Timer_Timer()
 Dim I As long
 For I=0 to UBound(棋子)-1
  If 棋子(I).行動指標=True Then
   Call 棋子行動 (棋子(I).行為模式)
  End If
 Next
End Sub

Sub 棋子行動(ByVal 傳入值)
 Select Case 傳入值
  Case 敵A
   敵A 模式行動展開
  Case 敵B
   敵B 模式行動展開
   .
   .
  Case 我A
   我A 模式行動展開
  Case 我B
   我B 模式行動展開
  .
  .
End Sub

 
  至于戰車跑幾步,士兵發幾槍,被 K 多少下才會隔屁,可借行為模式的增加來設定,不過這種各兵種不同屬性的設定,不管回合制或即時制都需要有此種機制,不構成雙方分別的要件。

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97