设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2648|回复: 3
打印 上一主题 下一主题

[已经解决] 关于帧率的问题

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
687 小时
注册时间
2012-10-29
帖子
1543
跳转到指定楼层
1
发表于 2012-11-21 14:02:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 j433463 于 2012-11-24 01:31 编辑

我参考了芙蕾娅的地图窗口与金钱窗口图标两个脚本,写了一个在菜单中显示游戏累计时间的窗口脚本,如下:

RUBY 代码复制
  1. class Window_Playtime < Window_Base
  2.   def initialize
  3.     super(0, 0, window_width, fitting_height(1))
  4.   end
  5.   #--------------------------------------------------------------------------
  6.   # ● 取得视窗的宽度
  7.   #--------------------------------------------------------------------------
  8.   def window_width
  9.     return 160
  10.   end  
  11.   #--------------------------------------------------------------------------
  12.   # ● 更新画面
  13.   #--------------------------------------------------------------------------
  14.   def update
  15.     super
  16.     contents.clear
  17.     draw_icon(280,0,0)
  18.     draw_text(contents.rect, $game_system.playtime_s, 2)
  19.   end  
  20. end
  21. #==============================================================================
  22. # ■ Scene_Menu
  23. #------------------------------------------------------------------------------
  24. #  菜单画面
  25. #==============================================================================
  26. class Scene_Menu < Scene_MenuBase
  27.   #--------------------------------------------------------------------------
  28.   # ● 生成时间视窗
  29.   #--------------------------------------------------------------------------
  30.   alias create_time_window create_gold_window
  31.   def create_gold_window
  32.      create_time_window
  33.     @playtime_window = Window_Playtime.new
  34.     @playtime_window.x = 0
  35.     @playtime_window.y = Graphics.height - (@playtime_window.height * 2)
  36.   end
  37. end


结果执行测试时发现帧数从稳定的 60 降到 59,虽然只是一帧,不知道这样子有没有问题?
毕竟我是RGSS脚本菜鸟,很多都还不懂,第一个自己完成的脚本没什么信心,
菜单相关的脚本区加了地图窗口、金钱窗口、敌人图鉴、经验条值等等,帧数也不见变动,
难道 refresh 改成用 update 只是显示一个时间就会掉帧吗?或者我脚本有要改进的地方?
请高手指点一下,谢谢。

补充一点,我分辨率是 800*600,如果是预设的分辨率,帧数更少了大约有八、九帧左右。
修改劇本中,仔細審查原來的劇情大綱,覺得有點不太滿意,嘗試編寫不同主角不同主線的劇情,希望能寫得出來。

Lv2.观梦者

梦石
0
星屑
743
在线时间
2064 小时
注册时间
2011-10-3
帖子
1686
2
发表于 2012-11-21 14:51:13 | 只看该作者
因为需要运行的东西多了自然会掉帧,1,2帧问题不大,我玩黄太还设置跳2帧呢,否则速度太慢了

点评

运行的东西多少和掉不掉帧 没直接关系.比如你1秒运行60万次1+1=2 不会掉帧. 但是你1秒只运行了60次重画时间 就会掉1帧.关键在优化  发表于 2012-11-23 22:38
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
1281 小时
注册时间
2006-8-27
帖子
590
3
发表于 2012-11-23 22:32:41 | 只看该作者
refresh 和 update 没区别
关键在于你有没有调用它
你的脚本在生成窗口的时候没有调用 update
所以第一个问题就是 打开窗口的瞬间 时间窗口里是空的

第二个问题是 update 是1秒调用60次的 所以
你1秒画了60次图标和时间


最少更改是这样的.
class Window_Playtime < Window_Base
  def initialize
    super(0, 0, window_width, fitting_height(1))
    update #生成窗口就画内容
  end
  #--------------------------------------------------------------------------
  # ● 取得视窗的宽度
  #--------------------------------------------------------------------------
  def window_width
    return 160
  end
  #--------------------------------------------------------------------------
  # ● 更新画面
  #--------------------------------------------------------------------------
  def update
    super
    return if $game_system.playtime == @playtime #如果时间一样就结束运行下面的内容
    @playtime = $game_system.playtime #用来记忆现在的时间
    contents.clear
    draw_icon(280,0,0)
    draw_text(contents.rect, $game_system.playtime_s, 2)
  end  
end
#==============================================================================
# ■ Scene_Menu
#------------------------------------------------------------------------------
#  菜单画面
#==============================================================================
class Scene_Menu < Scene_MenuBase
  #--------------------------------------------------------------------------
  # ● 生成时间视窗
  #--------------------------------------------------------------------------
  alias create_time_window create_gold_window
  def create_gold_window
     create_time_window
    @playtime_window = Window_Playtime.new
    @playtime_window.x = 0
    @playtime_window.y = Graphics.height - (@playtime_window.height * 2)
  end
end


当然在加个refresh 视觉效果更好 但功能效率是一样的
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
687 小时
注册时间
2012-10-29
帖子
1543
4
 楼主| 发表于 2012-11-24 00:52:28 | 只看该作者
wbsy8241 发表于 2012-11-23 22:32
refresh 和 update 没区别
关键在于你有没有调用它
你的脚本在生成窗口的时候没有调用 update

非常感谢指点,我也正在想怎么减少一秒多次update的问题,
不过思路卡住了没有弄明白,还想到回圈去了。
{:2_279:}

还有初始化那边呼叫 update,原本 refresh 时有加,用 update 就删掉了,
我在测试时未发觉窗口开启无显示,以为正常,现在才知道会这样,汗啊!
果然菜鸟不懂的地方,要注意的细节很多啊!
{:2_276:}
修改劇本中,仔細審查原來的劇情大綱,覺得有點不太滿意,嘗試編寫不同主角不同主線的劇情,希望能寫得出來。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-4-28 07:03

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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