查看: 1697|回复: 3

关于帮助窗口刷新造成卡...

  [复制链接]

看不到我

梦石
0
星屑
50
在线时间
229 小时
注册时间
2005-11-6
回帖
1396

贵宾

发表于 2007-7-27 07:03:34 | 显示全部楼层 |阅读模式

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

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

×
http://rpg.blue/web/htm/news581.htm
类似这个
帮助窗口由于是不停刷新 就是调用update_help 导致FPS下降厉害
上面那个是说判断按键后再刷新,导致一个BUG就是第一个物品不显示帮助
如何解决{/fd}
版务信息:本贴由楼主自主结贴~

看不到我

梦石
0
星屑
50
在线时间
229 小时
注册时间
2005-11-6
回帖
1396

贵宾

发表于 2007-7-27 07:03:34 | 显示全部楼层 |阅读模式

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

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

×
http://rpg.blue/web/htm/news581.htm
类似这个
帮助窗口由于是不停刷新 就是调用update_help 导致FPS下降厉害
上面那个是说判断按键后再刷新,导致一个BUG就是第一个物品不显示帮助
如何解决{/fd}
版务信息:本贴由楼主自主结贴~
梦石
0
星屑
95
在线时间
49 小时
注册时间
2006-5-7
回帖
479
发表于 2007-7-27 15:11:37 | 显示全部楼层
换个刷新判断方式吧,参考下柳柳大人以前对在下的的教导:
自己看看你的set_text和默认的set_text有什么区别吧。

默认的:

def set_text(text, align = 0)
   if text != @text or align != @align
...
     @text = text

你的:

def set_text(skill)
   if skill !=nil


你知道这有什么区别吗?请看这里:http://rpg.blue/web/htm/news518.htm

默认的方法使用了窗口自留数据,也就是这个窗口的@text记录了当前描绘了的文字,只有当需要描绘的文字修改的时候,才会执行contents的一大堆操作。这样每次就算update,也只会进行一次比对的判断;而你的update,skill肯定不是nil,那么每次都是进行比对后吧啦吧啦吧啦把所有文字描绘一遍。这一点就是变慢的原因。

速度最慢的是描绘,draw_text,最慢。

所以其实你用了饭的方法没有问题,不过最简单的,就是直接这么修改那个条件分歧:

if skill != nil and @skill != skill
@skill = skill

后面不变。速度立刻提升N倍。

总之,利用自留变量就是
系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
回复

使用道具 举报

看不到我

梦石
0
星屑
50
在线时间
229 小时
注册时间
2005-11-6
回帖
1396

贵宾

 楼主| 发表于 2007-7-27 18:10:28 | 显示全部楼层
了解了 多谢{/se}
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部