Project1

标题: 为什么把j该成i ,就会不能刷新文章 [打印本页]

作者: kvkv97    时间: 2021-2-26 15:30
标题: 为什么把j该成i ,就会不能刷新文章
  def  refresh
    self.contents.clear
    self.contents.font.size = 20
    self.contents.font.color = Color.new(0,255,0,255)
    j=0
    for i in @line..[@text.size-1,@line+14].min
      self.contents.draw_text(0,j*32,540-32,32,@text[i])
      j += 1
    end
    self.contents.font.size = 12
    self.contents.font.color = Color.new(255,255,0,255)
    self.contents.draw_text(0,408,540-32,12,@line.to_s+"/"+(@text.size-1).to_s,2)
  end

在天干宝典(壬中)“6R中文图书馆”中的一段,为什么把j该成i ,就会不能刷新文章?

作者: 阵颜    时间: 2021-2-26 15:46
    j=0
    for i in @line..[@text.size-1,@line+14].min
      self.contents.draw_text(0,j*32,540-32,32,@text)
      j += 1
    end
作者: yaminolancelot    时间: 2021-2-26 16:22
超出作用域了,用实例变量
作者: RPGzh500223    时间: 2021-2-26 18:05
应该是文字描绘区域超出窗口了
不知道@line的值
假设@line等于100
@line * 32 超过窗口很多
没描绘文字,就是“不刷新吧”

j初始0 每行加1
保证了描绘区域在窗口的“上半部分”
作者: ppspssss    时间: 2021-2-26 19:26
for循环为最常用的循环, 无论在什么语言都是必用到的循环 , for 变量 in x..y  或者 for 变量 in x...y 多一个点为数组用, 因为数组从零开始所以通常数组是用三个点

for i in 1..5       # 变量 i 的值按从 1 到 5 的范围变化,
  a += i            #   变量 a 加上 i 的值。
end
比如这里用F1的手册作例子, i 是循环的次数代入 由1..5得出, 第1次循环,i的数值为1,第2次循环,i的数值为2,第3次循环,i的数值为3, 第4次循环,i的数值为4, 第5次循环,i的数值为5, 循环5次后自动退出 , 如果是1...5 (多了一个点) 就第1次循环,i的数值为0, 所以1...5等同0..4 同样是循环5次后自动退出 , 循环的底部要以end结束




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1