游戏开发论坛

 找回密码
 立即注册
搜索
查看: 4637|回复: 10

给陈?:VB战略三国的初步设计思想 2005年8月19日

[复制链接]

130

主题

2714

帖子

2714

积分

金牌会员

Rank: 6Rank: 6

积分
2714
发表于 2005-8-19 22:11:00 | 显示全部楼层 |阅读模式
给陈?:VB战略三国的初步设计思想 2005年8月19日
(仓促书写可能会有错误,还望大家指正)

假设我们设计三个国家(只有三个城市),当引擎有了以后可以增加国家和城市,
我们一共需要5个TIMER控件。

5个TIMER控件的用途:
TIMER1:主程序用
TIMER2:刘备国用
TIMER3:曹操国用
TIMER4:孙权国用
TIMER5:打仗用

Private Sub Form_Load()
RANDOMIZE TIMER
Timer1.Interval = 1
Timer2.Interval = 1
Timer3.Interval = 1
Timer4.Interval = 1
Timer5.Interval = 1
Timer1.Enabled = False
Timer2.Enabled = False
Timer3.Enabled = False
Timer4.Enabled = False
Timer5.Enabled = False
END SUB

游戏开始:
Timer1.Enabled = TRUE
Timer2.Enabled = TRUE
Timer3.Enabled = TRUE
Timer4.Enabled = TRUE


设计战略游戏的步骤和顺序:
注明:如果你一开始就设计有N个国家那你是错误的,因为连基本的东西都没有,一开始只能设计一个国家(不是两个以上国家)
,因为只有设计好自己的国家才能去想下一步别人的国家,那些所谓内政,征兵,募捐等都是假的,放到下一步,要分清设计程
序的主次。


主程序:
Private Sub Timer1_Timer()
.......................
Timer5.Enabled = TRUE           '首先测试开启打仗的程序
.......................
end sub


(1)打仗画面(这是设计本游戏的第一步)
     首先应当设计游戏里两个队伍的战斗画面,当然两个队伍不属于任何国家或城市,以后打仗的时候方便调用,
     只需要改变变量就行。

Private Sub Timer5_Timer()
A=X       ’A代表军队1
B=Y       ’B代表军队1
.................
你现在做两支队伍打仗的程序,包括行走,攻击等,我这里没办法写,略。

如果A胜利 那S1=1  (开始的时候S1=0:S2=0.......以后S1和S2的结果将返回给主程序或TIMER2,3,4知道)
如果B胜利 那S2=1     

end sub
当你把游戏里最基础的打仗程序做好了才做下面的,否则你做了下面也没用,因为打仗是游戏里调用的一个子程序,
需要先做好,比如我设计坦克游戏的时候并不是先设计地图,而是设计敌人坦克的行走,当有敌人坦克行走才设计
地图。


(2)内政画面(本国)
     跟着设计内政画面,你可以用随即数RND,比如点开垦荒地,那C1=INT(RND*100+1),C就是开发度,
     征兵也一样,C2=INT(RND*1001+100),表示最少可以征到100人最多1100人,与此类推,其他的如
     施舍粮食也一样......
     招人的设计:(招聘在武将,文官)
      C3=INT(RND*10+1)
      IF C3=1 THEN  代表招到了,那个10可以修改,数字越大越难招到。
     在野武将:
     C4=INT(RND*10000):IF C4=1 THEN 庞统出现
     C5=INT(RND*1000):IF C5=1 THEN 刘封出现

其实上面设计好了后那你就等于有了自己的国家,里面的内容要自己设计,在设计这步的时候你一定不要管你游戏里有多少个国家,
因为那是以后的事,你自己的国家可以行使各种功能才算有成功。

请注意:我的设计思想是用变量来做指针的,就是A1=1发生A事件,A1=2发生B事件......

(3)两个以上国家
现在设计邻国,比如我是刘备国,下面设计曹操国。
请注意如果有三个国家那TIME2,3,4是同时工作的,也需要都打开TimerN.Enabled = TRUE ,前面已经讲了。
如果设计10个国家那就需要更多的TIMER控件,不用担心控件多,因为在某国被占领属于自己的国家后那个TIMER将被关闭,
他的变量也将被主程序引用,假如三个国家TIMER2,3,4,刘备统一中国那只剩下一个TIMER2,还有TIMER1是取变量用的,
TIMER5不打仗是不工作的。

还是变量当指针,主程序判断:
IF X1=1  THEN       刘备国属于刘备
IF X2=2  THEN       曹操国属于曹操
IF X3=3  THEN       孙权国属于孙权

IF X1=1  THEN       刘备国属于刘备
IF X2=1  THEN       曹操国属于刘备
IF X3=1  THEN       孙权国属于刘备

IF X1=2  THEN       刘备国属于曹操
IF X2=2  THEN       曹操国属于曹操
IF X3=2  THEN       孙权国属于曹操

IF X1=3  THEN       刘备国属于孙权
IF X2=3  THEN       曹操国属于孙权
IF X3=3  THEN       孙权国属于孙权

看了上面应当明白我设计程序的方法了吧?我就是利用变量来处理事件,
再举例我的坦克游戏,TE1=1:TE2=1:TE3=1 代表三个敌人坦克都在
IF TE1=0 AND TE2=0 AND TE3=0 THEN 游戏胜利,和三国游戏道理一样。

Timer2.Enabled = TRUE        刘备国统一中国
Timer3.Enabled = FALSE
Timer4.Enabled = FALSE

Timer2.Enabled = FALSE        
Timer3.Enabled = TRUE        曹操国统一中国
Timer4.Enabled = FALSE

Timer2.Enabled = FALSE        
Timer3.Enabled = FALSE        
Timer4.Enabled = TRUE        孙权国统一中国

当然被关的TIMER之前他们是活动的,被关闭后,变量必须被主程序引用......


最后:存档是很简单的,只需要把那些变动过的变量写进盘就可以了,取进度的时候读这些变量就可以了,
可以参考我的老游戏失落的玉玺,虽然是QUICK BASIC,但原理是一样的。


                                                           游戏之家
sf_2005819221041.gif

7

主题

318

帖子

318

积分

中级会员

Rank: 3Rank: 3

积分
318
发表于 2005-8-20 11:15:00 | 显示全部楼层

Re:给陈?:VB战略三国的初步设计思想 2005年8月19日

mnb

32

主题

1583

帖子

1589

积分

金牌会员

Rank: 6Rank: 6

积分
1589
发表于 2005-8-21 19:18:00 | 显示全部楼层

Re:给陈?:VB战略三国的初步设计思想 2005年8月19日

这是一个太原始的结构。
复杂的游戏不能使用的。

我看了陈?的CHM,要的是结构化,模块化,面向对象的思想,不是这种想哪编哪的方法。

130

主题

2714

帖子

2714

积分

金牌会员

Rank: 6Rank: 6

积分
2714
 楼主| 发表于 2005-8-21 20:25:00 | 显示全部楼层

Re:给陈?:VB战略三国的初步设计思想 2005年8月19日

哦!  还是可以的, 我还是一贯奉行我的QB设计思想, 等我的坦克游戏做完了,可能会做个类似的游戏, 就是用上面的设计思想.

还是用TIMER模拟多线程, 也就是我们在内政的时候别的国家也在同样执行类似内容, 而且我可以把程序写的很短, 多数以画面表示, 还有就是那么多武将, 其实没有做事的时候都是不工作的,需要派他们的时候才调出, 每个武将都是用变量指针来控制的.

73

主题

612

帖子

618

积分

高级会员

Rank: 4

积分
618
发表于 2005-8-21 21:38:00 | 显示全部楼层

Re: Re:给陈?:VB战略三国的初步设计思想 2005年8月19日

sandy_zc_1: Re:给陈?:VB战略三国的初步设计思想 2005年8月19日

这是一个太原始的结构。
复杂的游戏不能使用的。

我看了陈?的CHM,要的是结构化,模块化,面向对象的思想,不是这种想哪编哪的方法。

同意,同时我在游戏中已经体念到vb不支持继承的痛苦!

22

主题

371

帖子

387

积分

中级会员

Rank: 3Rank: 3

积分
387
发表于 2005-8-21 21:38:00 | 显示全部楼层

Re:给陈?:VB战略三国的初步设计思想 2005年8月19日

偶也看了陈?的CHM,作为策划案还可以,楼主就不要害死他了,这种写法……

130

主题

2714

帖子

2714

积分

金牌会员

Rank: 6Rank: 6

积分
2714
 楼主| 发表于 2005-8-21 22:26:00 | 显示全部楼层

Re:给陈?:VB战略三国的初步设计思想 2005年8月19日

我会写出来给你看,等吧!
目前在写坦克第2关.......

18

主题

971

帖子

982

积分

高级会员

Rank: 4

积分
982
发表于 2005-8-22 13:28:00 | 显示全部楼层

Re:给陈?:VB战略三国的初步设计思想 2005年8月19日

嘿嘿,没一点封装的啊。。。。。那样写什么都得死啊,甭说扩展!

130

主题

2714

帖子

2714

积分

金牌会员

Rank: 6Rank: 6

积分
2714
 楼主| 发表于 2005-8-22 17:00:00 | 显示全部楼层

Re:给陈?:VB战略三国的初步设计思想 2005年8月19日

没一个人的写程序思想是不同的,我的并非你想象的那种,况且我只写了个大概,
可能你没明白我的意思:
我把国家、战争、内政等作为独立的子程序来写,给所有的国家调用,用变量指针来指向子程序的运行,这样我是一个国家一个国家写的,先写子程序,子程序是独立可以运行的,就是说我可以写2个国家也可以写20个国家,我写游戏方法还是DOS的理念。

53

主题

241

帖子

252

积分

中级会员

Rank: 3Rank: 3

积分
252
发表于 2005-8-23 00:02:00 | 显示全部楼层

Re:给陈?:VB战略三国的初步设计思想 2005年8月19日

风格问题,顺手就好

不过我不太喜欢用TIMER控件,用API计时比较适合我的思维方式,只是写引擎时比用TIMER多写几句,好像还比较节约内存,在我印象中,大部分控件都比较占资源
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-27 13:38

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表