游戏开发论坛

 找回密码
 立即注册
搜索
查看: 5459|回复: 19

求助:VB中怎样同时处理两条语句?

[复制链接]

43

主题

229

帖子

234

积分

中级会员

Rank: 3Rank: 3

积分
234
QQ
发表于 2005-8-12 13:47:00 | 显示全部楼层 |阅读模式
VB中运行时不是一条语句一条语句的运行嘛
有没有什么办法分两条进程同时运行语句吗
如果有办法,请高手指教

130

主题

2714

帖子

2714

积分

金牌会员

Rank: 6Rank: 6

积分
2714
发表于 2005-8-12 15:39:00 | 显示全部楼层

Re:求助:VB中怎样同时处理两条语句?

你用两个钟就行了(TIMER控件)
我现在做的游戏已经用到4个钟,而且这4个钟走的时间是不同的,
我用开关钟的命令来控制程序。

43

主题

229

帖子

234

积分

中级会员

Rank: 3Rank: 3

积分
234
QQ
 楼主| 发表于 2005-8-12 16:15:00 | 显示全部楼层

Re:求助:VB中怎样同时处理两条语句?

着的确是个好办法

130

主题

2714

帖子

2714

积分

金牌会员

Rank: 6Rank: 6

积分
2714
发表于 2005-8-12 16:42:00 | 显示全部楼层

Re:求助:VB中怎样同时处理两条语句?

比如我现在做的仿3D坦克游戏,驾驶室肯定要用一个钟,那我由驾驶室切换到战略地图的时候,地图其实也是个钟,地图上的显示目标和我目前操作的坦克是同时移动的,其实我把敌人也作为一个钟了来处理目前用到4个钟,游戏完成后要用8个钟以上,用钟的办法很实用,比如需要过关的游戏,一个TIMER就代表一关,等过了关就把这个TIMER关掉就不执行了,然后把第2关的钟打开,与此类推,还有用钟的时间是很准的,用循环延时的缺点是在不同速度的电脑上运行速度不同,用钟的好处你现在知道了?

89

主题

822

帖子

847

积分

高级会员

Rank: 4

积分
847
发表于 2005-8-12 17:54:00 | 显示全部楼层

Re: 求助:VB中怎样同时处理两条语句?

还有用钟的时间是很准的


Timer的钟是不准的,精度在0.05秒左右,而且和系统资源有关,不过,看我们干什么了,如果你对这0.05秒不在乎,也不在乎系统资源的话,用没有问题

VB6不支持多线程,即使你使用API函数来实现多线程也是不安全的,容易导致程序崩溃

130

主题

2714

帖子

2714

积分

金牌会员

Rank: 6Rank: 6

积分
2714
发表于 2005-8-12 18:51:00 | 显示全部楼层

Re:求助:VB中怎样同时处理两条语句?

0.05秒,我设计程序的精度没那么高,我只是用几个种来管理几段程序,
尤其是设计三国即时战略游戏的时候,你在打仗的时候,别的城市也在进行活动,
那就要2个以上TIMER控制了。

32

主题

1583

帖子

1589

积分

金牌会员

Rank: 6Rank: 6

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

Re:求助:VB中怎样同时处理两条语句?

Timer无法真正实现多线程!
而且不稳定!

32

主题

1583

帖子

1589

积分

金牌会员

Rank: 6Rank: 6

积分
1589
发表于 2005-8-12 20:02:00 | 显示全部楼层

Re:求助:VB中怎样同时处理两条语句?

现在做程序已经不再使用Timer了,没意义,如果真要用我宁愿自己写一个控件。

另外Timer的精度在不同系统上不一样!98下面顶多50毫秒!Interval属性纯粹是唬人的。

130

主题

2714

帖子

2714

积分

金牌会员

Rank: 6Rank: 6

积分
2714
发表于 2005-8-12 21:46:00 | 显示全部楼层

Re:求助:VB中怎样同时处理两条语句?

我不是用TIMER来控制时间的,等我的下一个游戏做好你看我的源程序就知道了,
前面我已经说了,我的游戏是在一个地图上玩,地图上有我的坦克,我的坦克在驾驶室和地图上移动是分别放在两个TIMER里的,但两个程序是同时运行的,根据情况我可以关掉其中一个TIMER,我也可以在TIMER里用IF THEN , END IF + RND函数设置程序中的程序,使用TIMER大大省了代码,目前我的四个钟是这样设置的:
Randomize Timer
Timer1.Interval = 10             '主程序的钟
Timer2.Interval = 60             '坦克发射炮弹的钟
Timer3.Interval = 50             '机枪发射子弹的钟
Timer4.Interval = 100           '地图的钟

我用
Timer1.Enabled = True
Timer2.Enabled = True
Timer3.Enabled = True
........
来控制每个TIMER程序的启动还是停止。

我写的游戏代码都是很短的,关键是借助VB的这些功能。
我也在不同电脑上测试过了,运行速度一样,从C900---P4/2.4G,

130

主题

2714

帖子

2714

积分

金牌会员

Rank: 6Rank: 6

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

Re: Re:求助:VB中怎样同时处理两条语句?

sandy_zc_1: Re:求助:VB中怎样同时处理两条语句?

Timer无法真正实现多线程!
而且不稳定!


那你看我三个TIMER使用的画面吧!
sf_200581222155.jpg
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-22 12:08

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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