用VB開發即時戰略游戲
我先解釋一下設計方法。
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 多少下才會隔屁,可借行為模式的增加來設定,不過這種各兵種不同屬性的設定,不管回合制或即時制都需要有此種機制,不構成雙方分別的要件。