查看: 3213|回复: 3

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

[复制链接]
梦石
0
星屑
50
在线时间
687 小时
注册时间
2012-10-29
回帖
1526
发表于 2012-11-21 14:02:52 | 显示全部楼层 |阅读模式

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

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

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

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

[pre lang="ruby" line="1"]class Window_Playtime < Window_Base
  def initialize
    super(0, 0, window_width, fitting_height(1))
  end
  #--------------------------------------------------------------------------
  # ● 取得视窗的宽度
  #--------------------------------------------------------------------------
  def window_width
    return 160
  end  
  #--------------------------------------------------------------------------
  # ● 更新画面
  #--------------------------------------------------------------------------
  def update
    super
    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[/pre]

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

补充一点,我分辨率是 800*600,如果是预设的分辨率,帧数更少了大约有八、九帧左右。
修改劇本中,仔細審查原來的劇情大綱,覺得有點不太滿意,嘗試編寫不同主角不同主線的劇情,希望能寫得出來。
梦石
0
星屑
803
在线时间
2068 小时
注册时间
2011-10-3
回帖
1620
发表于 2012-11-21 14:51:13 | 显示全部楼层
因为需要运行的东西多了自然会掉帧,1,2帧问题不大,我玩黄太还设置跳2帧呢,否则速度太慢了

点评

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

使用道具 举报

梦石
0
星屑
50
在线时间
1281 小时
注册时间
2006-8-27
回帖
550
发表于 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 视觉效果更好 但功能效率是一样的
回复

使用道具 举报

梦石
0
星屑
50
在线时间
687 小时
注册时间
2012-10-29
回帖
1526
 楼主| 发表于 2012-11-24 00:52:28 | 显示全部楼层
wbsy8241 发表于 2012-11-23 22:32
refresh 和 update 没区别
关键在于你有没有调用它
你的脚本在生成窗口的时候没有调用 update

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

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

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部