Project1

标题: 怎么获得FPS? [打印本页]

作者: yangff    时间: 2008-8-14 06:00
标题: 怎么获得FPS?

怎么在游戏里获得FPS。
按F2我知道。
但是我想直接显示在游戏里。
怎么获得捏?
[LINE]1,#dddddd[/LINE]版务信息:本贴由楼主自主结贴~
作者: 雪流星    时间: 2008-8-14 06:23
我还以为是那个新手....
原来是芳斐...

Graphics.frame_rate

作者: 越前リョーマ    时间: 2008-8-14 06:25
以下引用snstar2006于2008-8-13 22:23:47的发言:

我还以为是那个新手....
原来是芳斐...

Graphics.frame_rate

我知道yangff看的懂,但我依然看不懂……
作者: yangff    时间: 2008-8-14 06:29
顺路问下怎么屏蔽F2?
作者: 雪流星    时间: 2008-8-14 06:31
以下引用yangff于2008-8-13 22:29:08的发言:
顺路问下怎么屏蔽F2?


这可能要动用到API
我还搞不太清楚API....Drz
作者: yangff    时间: 2008-8-14 06:34
以下引用snstar2006于2008-8-13 22:31:25的发言:


以下引用yangff于2008-8-13 22:29:08的发言:
顺路问下怎么屏蔽F2?


这可能要动用到API
我还搞不太清楚API....Drz

汗,要改dll.
Graphics.frame_rate得到锝都是60和f2获得的不同
作者: 越前リョーマ    时间: 2008-8-14 06:40
以下引用yangff于2008-8-13 22:34:40的发言:


以下引用snstar2006于2008-8-13 22:31:25的发言:


以下引用yangff于2008-8-13 22:29:08的发言:
顺路问下怎么屏蔽F2?


这可能要动用到API
我还搞不太清楚API....Drz


汗,要改dll.
Graphics.frame_rate得到锝都是60和f2获得的不同

莫非是上限……
作者: 雪流星    时间: 2008-8-14 06:50
刚才查了一下
Graphics.frame_rate似乎是个定值
不是真实出现的FPS.......{/gg}
作者: yangff    时间: 2008-8-14 19:19
以下引用snstar2006于2008-8-13 22:50:54的发言:

刚才查了一下
Graphics.frame_rate似乎是个定值
不是真实出现的FPS.......

厄。。。
作者: IamI    时间: 2008-8-14 19:26
Graphics.frame_rate 获得的是理论FPS,即程序将尽力达到这个FPS,(可以理解为上限)
但是有些时候执行的事件过多不可能获得指定的FPS,那么按F2即可获得实际FPS
如果要计算实际FPS,在Main里动点手脚再配合Time类吧……
作者: 雪流星    时间: 2008-8-14 19:29
以下引用IamI于2008-8-14 11:26:19的发言:
Graphics.frame_rate 获得的是理论FPS,即程序将尽力达到这个FPS,(可以理解为上限)<br>
但是有些时候执行的事件过多不可能获得指定的FPS,那么按F2即可获得实际FPS<br>
如果要计算实际FPS,在Main里动点手脚再配合Time类吧……

虽然我有想过手动计算在显示
但是计算出来之後,恐怕FPS又掉了吧.....
作者: yangff    时间: 2008-8-14 19:33
以下引用snstar2006于2008-8-14 11:29:12的发言:


以下引用IamI于2008-8-14 11:26:19的发言:
Graphics.frame_rate 获得的是理论FPS,即程序将尽力达到这个FPS,(可以理解为上限)<br>
但是有些时候执行的事件过多不可能获得指定的FPS,那么按F2即可获得实际FPS<br>
如果要计算实际FPS,在Main里动点手脚再配合Time类吧……



虽然我有想过手动计算在显示
但是计算出来之後,恐怕FPS又掉了吧.....

天啊!子阿!莎士比亚啊!!!!
作者: 火鸡三毛老大    时间: 2008-8-14 19:56
晕……
不是有个例子了吗……
《谢谢你坦克》……解密版……
http://rpg.blue/viewthread.php?tid=92754
作者: IamI    时间: 2008-8-14 19:59
我班门弄斧一下Orz
http://rpg.blue/upload_program/files/time_99143841.rar
动了Main,Scene_Base,得到的FPS是p出,维持在大概59左右
作者: yangff    时间: 2008-8-14 20:03
以下引用火鸡三毛老大于2008-8-14 11:56:54的发言:

晕……
不是有个例子了吗……
《谢谢你坦克》……解密版……
http://rpg.blue/viewthread.php?tid=92754

我得到的结果是1
作者: yangff    时间: 2008-8-14 20:26
以下引用KamishiHata于2008-8-14 11:33:31的发言:


以下引用yangff于2008-8-13 22:29:08的发言:

顺路问下怎么屏蔽F2?


汇人工作室发布的RTP1.02汉化版的DLL本来就屏蔽了F1F2,变成Ctrl+F1和Ctrl+F2了。
http://unirpg.1010zz.com/bbs/showthread.php?t=5

我要彻底屏蔽F2
按什么也没F2
作者: yangff    时间: 2008-8-14 21:35
但是总会有人试出来,世上无难事,只怕有心人...不管是有意或无意.
fps唤出来会导致守护程序无法通过FindWINDOw找到窗口。
而且这个网游脚本要求不能使用其它的dll。
把那个dll脱壳后在家壳都不行。。。。。
作者: yangff    时间: 2008-8-14 21:48
以下引用IamI于2008-8-14 11:59:53的发言:

我班门弄斧一下Orz
http://rpg.blue/upload_program/files/time_99143841.rar
动了Main,Scene_Base,得到的FPS是p出,维持在大概59左右

不准
作者: link006007    时间: 2008-8-15 05:26
FPS 的定义  每一秒更新画面的次数

Graphics.frame_count
是画面更新次数的计数。游戏开始时这个属性预先设定为 0,通过 frame_rate 属性的值,就能算出游戏的运行时间(秒数)。

计算出每秒上一次Graphics.frame_count 和本次Graphics.frame_count 的差值就是FPS

作者: yangff    时间: 2008-8-15 17:49
以下引用link006007于2008-8-14 21:26:58的发言:

FPS 的定义  每一秒更新画面的次数

Graphics.frame_count
是画面更新次数的计数。游戏开始时这个属性预先设定为 0,通过 frame_rate 属性的值,就能算出游戏的运行时间(秒数)。

计算出每秒上一次Graphics.frame_count 和本次Graphics.frame_count 的差值就是FPS

计算出来的是1
作者: IamI    时间: 2008-8-15 18:12
以下引用yangff于2008-8-15 9:49:49的发言:

计算出来的是1

因为你算的是每帧的帧速率FPF,当然是1,我们要的是FPS,关键是怎么拿到准确的1s
作者: yangff    时间: 2008-8-15 18:21
以下引用IamI于2008-8-15 10:12:17的发言:


以下引用yangff于2008-8-15 9:49:49的发言:

计算出来的是1


因为你算的是每帧的帧速率FPF,当然是1,我们要的是FPS,关键是怎么拿到准确的1s

Time.now.sec - @otime1 >= 1
作者: yangff    时间: 2008-8-15 18:23
现在不是1了
可还是不准
作者: IamI    时间: 2008-8-15 18:28
以下引用yangff于2008-8-15 10:23:45的发言:

现在不是1了
可还是不准

因为拿不到精确的一秒
(我猜的{/gg})
作者: 柳之一    时间: 2008-8-15 18:30
class xxxx_window
def initialize
    super(xx,xx,xx,xx)
    @sec = Time.now.sec
    @fps = 0
    @frames = Graphics.frame_count
    refresh
end
    def refresh
    if @sec !=Time.now.sec
      @sec = Time.now.sec
      @fps = Graphics.frame_count - @frames
      @frames = Graphics.frame_count
    end
  end
end
@fps就能求出来了(wy的方法)
至于fps的显示我就不弄了
在精确就得用高精度计时器了 [LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者: link006007    时间: 2008-8-15 19:41
以下引用yangff于2008-8-15 9:49:49的发言:
计算出来的是1

晕死  是每秒啊  不是每帧啊{/gg}
还好柳之一同学写出来了 - -||
作者: yangff    时间: 2008-8-15 19:44
以下引用link006007于2008-8-15 11:41:38的发言:


以下引用yangff于2008-8-15 9:49:49的发言:
计算出来的是1


晕死  是每秒啊  不是每帧啊
还好柳之一同学写出来了 - -||

我忘记写:@sec = Time.now.sec 了{/gg}




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1