Project1

标题: 仍是在地图上显示变量的问题 [打印本页]

作者: ClaudeBell    时间: 2009-2-11 23:48
标题: 仍是在地图上显示变量的问题
之前问过的问题,就是此脚本
  1. #------------------------------------------------------------------------
  2. #      本脚本来自于66RPG  转载请著名  非法用户【编写】
  3. #------------------------------------------------------------------------
  4.   # 设定要显示的变量号
  5.   $variables_id = 1
  6.   
  7.   # 设置图标显示号
  8.   $icon_index = 0
  9. #------------------------------------------------------------------------

  10. # 新建窗口
  11. class Window_Variables < Window_Base
  12.   # 初始化
  13.   def initialize
  14.     # 创建大小
  15.     super(330,-3,200,200)
  16.     # 获取图标编号
  17.     @icon = 0
  18.     # 获取变量编号
  19.     @variable = 0
  20.     # 刷新
  21.     self.opacity = 0
  22.     refresh
  23.   # 初始化结束
  24.   end
  25.   # 刷新
  26.   def refresh
  27.     # 在图表与变量都有变化的情况下
  28.     if @icon != $icon_index or @variable != $game_variables[$variables_id]
  29.       # 清楚内容
  30.       self.contents.clear
  31.       # 描绘图表
  32.       #draw_icon($icon_index,4,0,true)
  33.       # 描绘变量,偏右
  34.       self.contents.draw_text(82,0,64,24,$game_variables[1].to_s,2)#总天数
  35.       self.contents.draw_text(40,25,64,24,$game_variables[2].to_s,2)#月份
  36.       self.contents.draw_text(77,25,64,24,$game_variables[3].to_s,2)#日
  37.       self.contents.draw_text(90,50,64,24,$game_variables[4].to_s,2)#体力
  38.       self.contents.draw_text(90,72,64,24,$game_party.gold,2)#金钱
  39.       # 带入变量
  40.       @icon = $icon_index
  41.       @variable = $game_variables[$variables_id]
  42.     # if 结束
  43.     end
  44.   # 刷新结束
  45.   end
  46. # class 结束
  47. end

  48. # 地图生成窗口
  49. class Scene_Map < Scene_Base
  50.   # 生成窗口
  51.   alias new_start start
  52.   def start
  53.     new_start
  54.     @varia_window = Window_Variables.new
  55.   end
  56.   # 刷新窗口
  57.   alias new_update update
  58.   def update
  59.     new_update
  60. if $game_switches[10] == true  #新添加
  61.     @varia_window.visible = true  #新添加
  62. else   #新添加
  63. @varia_window.visible = false  #新添加
  64. update_basic  #新添加
  65. end # 开关控制  #新添加
  66.     @varia_window.refresh
  67.   end
  68.   # 释放窗口
  69.   alias new_terminate terminate
  70.   def terminate
  71.     @varia_window.dispose
  72.     new_terminate
  73.   end
  74. # class 结束
  75. end
复制代码

在刷新窗口时加入了几句判断开关的脚本,但是同时也伴随出现了新的问题。刷新窗口时是每帧都进行一次判断,导致游戏运行速度大幅下降,出现了卡的情况。尽管知道问题所在,但是在下不会解决,囧。请问,如何修改才能实现只有第一次进入地图时进行开关的判断?
多谢


哦,应该是我妄下定论了,并不是FPS的下降,而是角色移动速度大幅降低,大概只有原来移动速度的一半,而且按键变得不灵敏。
抱歉,我没说清楚。 [LINE]1,#dddddd[/LINE]版务信息:本贴由楼主自主结贴~
作者: 八云紫    时间: 2009-2-11 23:50
简简单单的判断是不会造成 FPS 下降的。

描绘 文字,图片才是真正造成 FPS 下降的原因。

不过这个脚本没啥问题啊。

应该是脚本冲突之类的问题吧~
作者: ClaudeBell    时间: 2009-2-12 00:03
不是的,在脚本刷新那里多加的那几句“#新添加”,只要去掉之后就没有任何问题了。
游戏中只有这一个脚本,所以不是其他原因导致。
感谢回答{/cy}继续请求高手们解决~

哦,应该是我妄下定论了,并不是FPS的下降,而是角色移动速度大幅降低,大概只有原来移动速度的一半,而且按键变得不灵敏。
抱歉,我没说清楚。

继续请求高手们帮忙解决~

作者: 水蓝    时间: 2009-2-12 00:21
提示: 作者被禁止或删除 内容自动屏蔽
作者: ClaudeBell    时间: 2009-2-12 00:27
@varia_window.refresh 是这句吗?不过原版里也是有这句的就没问题啊?
还是因为我多加了几句关于开关判断的?
具体应该怎么该?如果比较麻烦的话我只能删掉这个功能了...
多谢~
作者: 水蓝    时间: 2009-2-12 00:35
提示: 作者被禁止或删除 内容自动屏蔽
作者: ClaudeBell    时间: 2009-2-12 00:42
因为也是别人帮忙改的,我也不是很清楚,不过我想应该是把全部地图信息刷新一次,在Scene_Map中定义的。

我先试一下你的方法,谢谢。

那个,问题解决了,并非出在refresh上,而是出在你问我那句updata_basic上...每次都会刷新地图...删掉之后就OK了。
非常感谢水蓝和八云紫同学帮助。




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