查看: 1252|回复: 2

[有事请教] 请问:一个帮助窗口的问题

[复制链接]
梦石
0
星屑
4761
在线时间
285 小时
注册时间
2013-10-13
回帖
580
发表于 2023-9-20 21:11:35 | 显示全部楼层 |阅读模式

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

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

×
  def set_text(text, align = 0)
    # 如果文本和对齐方式的至少一方与上次的不同
    if text != @text or align != @align
      # 再描绘文本
      self.contents.clear
      self.contents.font.color = normal_color
      self.contents.draw_text(4, 0, self.width - 40, 32, text, align)
      @text = text
      @align = align
      @actor = nil
    end
    self.visible = true
  end
在Window_Help中的方法set_text中,为什么要写text != @text,如果不写也可以,是为了节约内存吗?
梦石
0
星屑
4756
在线时间
389 小时
注册时间
2012-11-8
回帖
235
发表于 2023-9-21 08:38:02 | 显示全部楼层
不写意味着每次set_text都要重新描绘一次,虽然以现在的计算机性能基本上没什么影响,但这不是程序员不优化代码的理由,不断的优化代码提升执行效率是一个好习惯。
特别对于一些主频几兆,内存几十K甚至几K的嵌入式设备,每一个字节每一个指令都要精打细算。
如今高性能的硬件让程序员忘了怎么去优化,尽是堆屎山。就像手机app一样,随随便便占用几个g内部存储,运行起来内存随随便便吃个几个g,运行完留下一堆零碎文件,完全没有优化。
回复

使用道具 举报

梦石
0
星屑
983
在线时间
71 小时
注册时间
2021-4-13
回帖
34
发表于 2023-9-21 14:23:39 | 显示全部楼层
这里是判断“文本是否不同或者对齐方式是否不同”,如果其中有一种情况成立就需要擦掉原来的内容然后重新绘制。
不写的话……如果文字不同而对齐方式相同的话就会跳过重新绘制直接显示,就不能显示新文字了。
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部