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

Project1

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

[已经过期] 为啥我这个显示文本的脚本,一用帧数就下降十多帧?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
136
在线时间
1050 小时
注册时间
2006-5-3
帖子
774
跳转到指定楼层
1
发表于 2013-4-7 13:46:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 gaofei677 于 2013-4-7 13:53 编辑

这个是我改了来了一个前辈显示变量的脚本,改完以后用起来挺好,但是为什么每次使用这个脚本时的时候,游戏帧数就下降十多帧呢,我我检查了刷新方式,似乎也没什么问题,不是刷新过多的问题。

RUBY 代码复制
  1. Context_Switch = 3         
  2. Context_Refrsh = 4  
  3. $draw_context = []
  4.  
  5. class Draw_Context < Window_Base
  6. #--------------------------------------------------------------------------
  7. # ● 初始化窗口
  8. #--------------------------------------------------------------------------
  9. def initialize
  10.   super(-16, -16, 640+32, 480+32)
  11.   self.contents = Bitmap.new(width - 32, height - 32)
  12.   self.back_opacity = 255  
  13.   self.opacity = 255      
  14.   self.contents_opacity = 255      
  15.   self.visible = false
  16.   self.z=9999
  17.   @draw_context = $draw_context
  18.   @draw_context_a = []
  19.   for draw in $draw_context
  20.     @draw_context_a[draw[0]] = $game_variables[8][draw[0]]
  21.   end   
  22.   refresh
  23. end
  24.  
  25. #--------------------------------------------------------------------------
  26. # ● 刷新
  27. #--------------------------------------------------------------------------
  28. def refresh
  29.   if $game_switches[Context_Switch]
  30.       @draw_context = $draw_context         
  31.       self.contents.clear
  32.  
  33.       for draw in @draw_context
  34.       @draw_context_a[draw[0]] = $game_variables[8][draw[0]]
  35.  
  36. #==========绝对不是这个部分的问题(start)=========
  37.       #-----------------------------------------------------
  38.       # ● 描绘文字
  39.       #    当文字横排长度>66时,换行描绘
  40.       #    当文字总长度>286时,多余部分不显示
  41.       #-----------------------------------------------------
  42.        a = @draw_context_a[draw[0]].to_s
  43.  
  44.        if a.size > 286
  45.          b = a.slice(a.size-9, a.size)
  46.          a.slice!(273, a.size)
  47.          a.insert(273, "......#{b}")
  48.        end
  49.  
  50.        loop do
  51.          a.gsub!(/\n/) {|s| s=nil }
  52.          break if a.include?("\n") == false
  53.        end
  54.  
  55.  
  56.        if a.size<= 66
  57.          if draw[0] <= 12
  58.            #self.contents.draw_text(draw[1],draw[2],500,35,a)
  59.            self.contents.draw_text(draw[1],draw[2],a.size*10,35,a)
  60.            contents.font.size = 20
  61.            if draw[0] == 5 or draw[0] == 11
  62.              contents.font.color.set(0,255,255,245)
  63.            else
  64.              contents.font.color.set(255,255,255,245)
  65.            end
  66.          else
  67.             if draw[0] == 27 && a.size == 6
  68.                draw[1] = 463
  69.             end
  70.            #self.contents.draw_text(draw[1],draw[2],500,35,a)
  71.            self.contents.draw_text(draw[1],draw[2],a.size*10,35,a)
  72.            contents.font.color.set(0,0,0,245)
  73.            contents.font.shadow = false
  74.            contents.font.name = ["幼圆"]
  75.            if draw[0] == 24 or draw[0] == 25
  76.              contents.font.size = 13
  77.              contents.font.shadow = true
  78.              contents.font.color.set(255,255,255,255)
  79.            elsif draw[0] == 23
  80.              contents.font.color.set(255,255,255,255)
  81.              contents.font.size = 19
  82.  
  83.            elsif draw[0] == 26
  84.              contents.font.color.set(255,255,255,200)
  85.              contents.font.size = 17
  86.            elsif draw[0] == 13
  87.              contents.font.color.set(255,255,255,255)
  88.              contents.font.size = 15
  89.  
  90.            elsif draw[0] == 35
  91.              contents.font.color.set(255,0,0,255)
  92.              if $white[8] == true
  93.                  contents.font.color.set(0,255,0,255)
  94.              end
  95.            elsif draw[0] == 38
  96.              contents.font.color.set(255,0,0,0)
  97.  
  98.            elsif draw[0] == 36
  99.                  contents.font.color.set(255,0,0,255)
  100.              if $white[9] == true
  101.                  contents.font.color.set(0,255,0,255)
  102.              end
  103.  
  104.            elsif draw[0] == 37  
  105.              if $white[10] == true
  106.                contents.font.color.set(0,255,0,255)
  107.              else
  108.                contents.font.color.set(255,0,0,255)
  109.              end
  110.            else
  111.              contents.font.color.set(100,0,0,150)
  112.              contents.font.size = 17
  113.            end
  114.  
  115.           end
  116.         end
  117.  
  118.  
  119.        if a.size> 66
  120.          line = 0
  121.          loop do
  122.            b = a[0+line*66, 66]
  123.            self.contents.draw_text(draw[1],draw[2]+20*line,500,35,b)
  124.            line += 1
  125.            break if line >= 5
  126.          end
  127.            contents.font.color.set(0,0,0,245)
  128.            contents.font.shadow = false
  129.            contents.font.name = ["幼圆"]
  130.         end
  131. #==========绝对不是这个部分的问题(end)=========
  132.  
  133.  
  134.     end
  135.   end
  136. end
  137. #--------------------------------------------------------------------------
  138. # ● 判断文字刷新
  139. #--------------------------------------------------------------------------
  140. def judge
  141.   for draw in $draw_context
  142.     if @draw_context_a[draw[0]] != $game_variables[8][draw[0]]
  143.       return true
  144.     end
  145.   end
  146.   if $game_switches[Context_Refrsh]  
  147.      $game_switches[Context_Refrsh] = false
  148.      return true
  149.   end
  150.   return false
  151. end
  152. end
  153.  
  154. class Scene_Map
  155. alias  old_start start
  156. def start
  157. old_start
  158.   @draw_context = Draw_Context.new
  159.   @draw_context.opacity = 0
  160. end
  161. #--------------------------------------------------------------------------
  162. # ● 刷新画面
  163. #--------------------------------------------------------------------------
  164. alias draw_context_update update
  165. def update
  166.   draw_context_update
  167.   if $game_switches[Context_Switch]
  168.     @draw_context.visible = true      
  169.     @draw_context.refresh if @draw_context.judge
  170.   else
  171.     @draw_context.visible = false
  172.   end
  173. end
  174. end
漏夏同人
《咱的夏天》
下载地址:http://tieba.baidu.com/p/2681607456
人员招募:http://rpg.blue/thread-339747-1-1.html
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

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

GMT+8, 2024-12-23 01:19

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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