游戏开发论坛

 找回密码
 立即注册
搜索
查看: 4672|回复: 16

弱智问题求教;;;

[复制链接]

10

主题

40

帖子

44

积分

注册会员

Rank: 2

积分
44
发表于 2004-9-3 00:01:00 | 显示全部楼层 |阅读模式
我的小程序叫LITTLE。
在快的机器上非常快 慢的机器非常慢
那么如何控制他的速度?使其在快的机器上也正常点,不至于快的离谱?
在游戏循环里应该怎样写语句?
同志们,帮帮1个生手把

139

主题

2005

帖子

2057

积分

金牌会员

Rank: 6Rank: 6

积分
2057
QQ
发表于 2004-9-3 00:02:00 | 显示全部楼层

Re:弱智问题求教;;;

检测速度,速度太快就用_sleep(time)。
time是你想休息的时间,单位是毫秒

14

主题

283

帖子

293

积分

中级会员

Rank: 3Rank: 3

积分
293
QQ
发表于 2004-9-3 00:32:00 | 显示全部楼层

Re:弱智问题求教;;;

太快好解决,太慢嘛就要优化了

10

主题

40

帖子

44

积分

注册会员

Rank: 2

积分
44
 楼主| 发表于 2004-9-3 17:52:00 | 显示全部楼层

Re:弱智问题求教;;;

不是把。。。这种方法就是死等啊。。我不要用这种啊。
我希望是快的机器FPS快,但游戏速度和慢的机器一样均衡。
比如帝国时代,比如CS。。。。。在快的机器上FPS很高,但是游戏速度一样的

1

主题

11

帖子

11

积分

新手上路

Rank: 1

积分
11
发表于 2004-9-3 21:11:00 | 显示全部楼层

Re:弱智问题求教;;;

固定FPS的话,计算每一帧所有的平均时间,当每帧刷新时不够时间就LOOP...如果时间用过了可以省略图像刷新(就是跳帧)

139

主题

2005

帖子

2057

积分

金牌会员

Rank: 6Rank: 6

积分
2057
QQ
发表于 2004-9-3 22:56:00 | 显示全部楼层

Re:弱智问题求教;;;

或者是把动画基于时间

20

主题

134

帖子

134

积分

注册会员

Rank: 2

积分
134
发表于 2004-9-4 10:35:00 | 显示全部楼层

Re:弱智问题求教;;;

那个程序是游戏吗?
是游戏的话就不太大问题…
可以把更新画面的速度设到最高(每次循环更新一次),
至于数据处理可以用Timer

0

主题

32

帖子

32

积分

注册会员

Rank: 2

积分
32
发表于 2004-9-4 19:53:00 | 显示全部楼层

Re:弱智问题求教;;;

能那样是因为游戏逻辑处理的循环和绘图循环不是同一个循环,而是两个循环,之间通过一块共享内存进行绘图数据的传递(一般也就是一系列的全局变量),由于是两个循环一个线程,所以两个循环体依次写出来,但不写循环条件,之间如上面几位所说使用if检测逻辑处理的周期是否到了,如下:
while(...)
{
    { /*绘图循环体——使用绘图数据*/ }
    if( 逻辑时间间隔到了 ) { /*逻辑循环体——填写绘图数据*/ }
}
不过之前的Sleep函数严重不推荐使用,效率极低,只适合不精确大时间段的暂停。而且上面的循环实际实现了一种极简单的线程管理,如果可以,强烈建议编写两个线程来分别处理两个循环,否则上面如果逻辑循环体中用时较长(即CPU较差),会连带FPS降低,而多线程则不会,FPS将主要决定于硬件绘图能力,只不过多线程需处理上面对“绘图数据”的同步处理。

10

主题

40

帖子

44

积分

注册会员

Rank: 2

积分
44
 楼主| 发表于 2004-9-4 20:27:00 | 显示全部楼层

Re:弱智问题求教;;;

对就是要这个。。
可是VB6不能多线程 我气也气四了~~~~强烈愤慨!
谁能教教我VB6下使用WINAPI多线程的方法?!??

以前参考人家的多线程API在VB6下1用就OVER

32

主题

1583

帖子

1589

积分

金牌会员

Rank: 6Rank: 6

积分
1589
发表于 2004-9-5 13:59:00 | 显示全部楼层

Re:弱智问题求教;;;

“可是VB6不能多线程”——————-什么意思???

建议你使用这段代码(VB6的)
Dim T1 as long
Do
  T1=TimeGetTime '这个是一个WindowsAPI
Do While TimeGetTime-T1<你设定的时间间隔
    DoEvents ' 将操作权转让给系统,Windows就是这样实现多线程的  
Loop

处理你的运算
Loop until 程序退出条件
End
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-8-18 01:55

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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