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

Project1

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

求助一个菜单脚本的优化

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
82 小时
注册时间
2006-1-28
帖子
996
跳转到指定楼层
1
发表于 2008-9-16 22:58:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
这个脚本是我前几天在论坛找人帮忙写的音乐鉴赏脚本,不过发现增加说明文字后,
停留在相应选项上的时候FPS会严重下降,麻烦懂脚本的朋友帮忙看一下是什么原因,谢谢

  1. class Window_Enjoy < Window_Base
  2. def initialize
  3.    super(640 - 224,480 - 152,224,152)
  4.    self.contents = Bitmap.new(width - 32,height - 32)
  5. end
  6. def update(ar)
  7.    refresh(ar)
  8. end
  9. def refresh(ar)
  10.    self.contents.clear
  11.    self.contents.draw_text(0,32*0,192,32,ar[0])
  12.    self.contents.draw_text(0,32*1,192,32,"出处:  " + ar[1])
  13.    self.contents.draw_text(0,32*2,192,32,"制作人:" + ar[2])
  14.    self.contents.draw_text(0,32*3,192,32,"词作者:" + ar[3])
  15. end
  16. end
  17. class Scene_Music
  18. #--------------------------------------------------------------------------
  19. # ● 主处理
  20. #--------------------------------------------------------------------------
  21. def main
  22.   # 生成命令窗口
  23.   s1 = "music1"
  24.   s2 = "music2"
  25.   s3 = "music3"
  26.   s4 = "music4"
  27.   @command_window = Window_Command.new(192, [s1, s2, s3,s4])
  28.   @command_window.x = 0
  29.   @command_window.y = 0
  30.   @musicname = ["001-Battle01","002-Battle02","003-Battle03","004-Battle04"]
  31.   @enjoys = [["music1","From","Maker","Words Maker"],
  32.   ["music2","From","Maker","Words Maker"],
  33.   ["music3","From","Maker","Words Maker"],
  34.   ["music4","From","Maker","Words Maker"]]
  35.   @enjoy_window = Window_Enjoy.new
  36.   Graphics.transition
  37.   loop do
  38.     Graphics.update
  39.     Input.update
  40.     update
  41.     if $scene != self
  42.       break
  43.     end
  44.   end
  45.   Graphics.freeze
  46.   @command_window.dispose
  47.   @enjoys_window.dispose
  48.   if $scene.is_a?(Scene_Title)
  49.     Graphics.transition
  50.     Graphics.freeze
  51.   end
  52. end
  53. #--------------------------------------------------------------------------
  54. # ● 刷新画面
  55. #--------------------------------------------------------------------------
  56. def update
  57.   @enjoy_window.update(@enjoys[@command_window.index])
  58.   @command_window.update
  59.   # 按下 B 键的情况下
  60.   if Input.trigger?(Input::B)
  61.     $game_system.se_play($data_system.cancel_se)
  62.     $scene = Scene_Title.new
  63.     return
  64.   end
  65.   # 按下 C 键的场合下
  66.   if Input.trigger?(Input::C)
  67.     # 命令窗口光标位置分支
  68.     name = "Audio/BGM/" + @musicname[@command_window.index]
  69.     Audio.bgm_play(name)
  70.     return
  71.   end
  72. end
  73. end
复制代码

版务信息:本贴由楼主自主结贴~

Lv1.梦旅人

逃兵

2
发表于 2008-9-17 02:05:41 | 只看该作者
def update(ar)
   refresh(ar)
end

{/fd}

闪电,你很强

update每帧调用一次
你这么干就等于每帧refresh一次@enjoy_window
系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
「If you judge people, you have no time to love them.」—— Mother Teresa
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-24 02:18

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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