自己看看你的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倍。
| 欢迎光临 Project1 (https://rpg.blue/) | Powered by Discuz! X3.1 |