用VB开发即时战略游戏
先解释一下设计方法。
1.这叫棋子操纵模式。 字串4
2.回合制采用单方棋子操纵模式,也就是敌方棋子由电脑操纵,使用者棋子由使用者操纵。 字串8
3.即时制采用双方棋子操纵模式,也就是双方棋子都由电脑操作,只是电脑允许使用者改变我方棋子行为模式而已。
字串1
4.我们可以这么想,电脑由一个时间器(Timer) 隔一段时间去动一下敌我双方的所有旗子,也就是说使用者如果不动作,其实就是看电脑自己在下棋。
5.但一旦使用者指定某棋子时,该棋子移动指标就被标为 False ,如此电脑在每一棋步中碰到该棋子就不会对它有所动作,但其他棋子则继续动作,直到使用者设定完该棋子行动方式后,行动指标恢复为 True ,意思就是继续交还电脑控管。
字串2
6.用一个最简单的 VB 模型来说明:
Type 棋子模式 字串6
行动指标 As Boolean 字串2
行为模式 As SomeValue 字串2
End Type
字串1
'假设有十颗棋子 字串2
Dim 棋子(9) AS 棋子模式
Sub Form_Load() 字串6
Dim I As Long 字串4
棋子(0).行为模式=敌A
棋子(1).行为模式=敌B
.
字串2
.
棋子(5).行为模式=我A
棋子(6).行为模式=我B
. 字串2
. 字串5
For I=0 To Ubound(棋子)-1 字串4
棋子.行动指标=True
字串4
Next
字串2
End Sub 字串3
Sub 棋子_Click(Index As Integer)
棋子(Index).行动指标=False
字串4
Call 行为模式改变(Index) 字串9
End Sub 字串3
Sub 行为模式改变(Byval 传入值) 字串2
'...............行为模式改变设定 字串9
棋子(传入值).行为模式 =新行为模式
棋子(传入值).行动指标=True 字串3
End Sub
字串6
Sub Timer_Timer() 字串8
Dim I As long 字串4
For I=0 to UBound(棋子)-1 字串2
If 棋子(I).行动指标=True Then
Call 棋子行动 (棋子(I).行为模式)
字串9
End If
字串7
Next
End Sub 字串4
Sub 棋子行动(ByVal 传入值)
Select Case 传入值 字串4
Case 敌A
字串3
敌A 模式行动展开 字串9
Case 敌B 字串9
敌B 模式行动展开 字串6
.
字串2
. 字串5
Case 我A
我A 模式行动展开 字串5
Case 我B
字串7
我B 模式行动展开
字串1
. 字串4
.
字串4
End Sub 字串6
至于战车跑几步,士兵发几枪,被 K 多少下才会隔屁,可借行为模式的增加来设定,不过这种各兵种不同属性的设定,不管回合制或即时制都需要有此种机制,不构成双方分别的要件。 字串6
文章评论
共有 0位网友发表了评论