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

Project1

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

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

[复制链接]

Lv3.寻梦者

梦石
0
星屑
4169
在线时间
258 小时
注册时间
2013-10-13
帖子
815
跳转到指定楼层
1
发表于 2023-9-20 21:11:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
  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,如果不写也可以,是为了节约内存吗?

Lv3.寻梦者

梦石
0
星屑
4721
在线时间
387 小时
注册时间
2012-11-8
帖子
276
2
发表于 2023-9-21 08:38:02 | 只看该作者
不写意味着每次set_text都要重新描绘一次,虽然以现在的计算机性能基本上没什么影响,但这不是程序员不优化代码的理由,不断的优化代码提升执行效率是一个好习惯。
特别对于一些主频几兆,内存几十K甚至几K的嵌入式设备,每一个字节每一个指令都要精打细算。
如今高性能的硬件让程序员忘了怎么去优化,尽是堆屎山。就像手机app一样,随随便便占用几个g内部存储,运行起来内存随随便便吃个几个g,运行完留下一堆零碎文件,完全没有优化。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

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

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 09:17

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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