| 赞 | 0 |
| VIP | 0 |
| 好人卡 | 0 |
| 积分 | 1 |
| 经验 | 55044 |
| 最后登录 | 2022-1-4 |
| 在线时间 | 49 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 95
- 在线时间
- 49 小时
- 注册时间
- 2006-5-7
- 帖子
- 526
|
换个刷新判断方式吧,参考下柳柳大人以前对在下的的教导:
自己看看你的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感谢您的热情解答~ |
|