Project1

标题: 天干宝典里面的问题 [打印本页]

作者: kvkv97    时间: 2021-2-21 22:54
标题: 天干宝典里面的问题
class Scene_Read_NM
  #--------------------------------------------------------------------------
  # ● 主处理
  #--------------------------------------------------------------------------
  def main
    sp = Spriteset_Map.new
    @read_window = Window_Reader.new([""], 0)
    @read_window.opacity = 230
    @read_window.z = 900
    text = Dir["txt/*"]
    @text = []
    for tx in text
      @text.push (tx.split(/\//)[1].split(/.txt/)[0])
    end
    @command_window = Window_Command.new(180, @text)
    @command_window.y = (480 - @command_window.height)/2
    @command_window.opacity = 230
    @command_window.z = 999
    @doing = 1
    Graphics.transition
    # 主循环
    loop do
      # 刷新游戏画面
      Graphics.update
      # 刷新输入信息
      Input.update
      # 刷新画面
      update
      # 如果画面切换的话就中断循环
      if $scene != self
        break
      end
    end
    # 准备过渡
    Graphics.freeze
    @command_window.dispose if !@command_window.disposed?
    @read_window.dispose
    sp.dispose
  end
end
在天干宝典中6R图书馆中的一个程序段,
text = Dir["txt/*"] ——Dir到底是什么意思,后面的["txt/*"]是什么意思?
@text.push (tx.split(/\//)[1].split(/.txt/)[0])——小括号里面的程序是什么意思?

作者: enghao_lim    时间: 2021-2-22 03:38
Dir是获取文件目录的方法,具体可参考:https://www.runoob.com/ruby/ruby-dir-methods.html

至于@text.push那句是将获得的文件名做字符串处理,取文件名。例子:
文件名:txt\abc.txt
  1. tx.split(/\//)[1] => abc.txt
  2. "abc.txt".split(/.txt/)[0] => abc
复制代码

作者: RPGzh500223    时间: 2021-2-22 09:04
现学现卖:
Dir["txt/*"]  => 游戏工程主目录下 txt文件夹下的 文件夹名及文件名 的字符串数组
例: txt下有    文件a.txt   文件b.bmp  文件夹c
  => ["txt/a.txt", "txt/b.bmp", "txt/c"]
tx.split(/\//)[1].split(/.txt/)[0] => 提取文件名或文件夹名
接上例:=>"a",  "b.bmp", "c"

如果只取文本文档文件名 Dir["txt/*.txt"]会好点

具体搜索
ruby Dir
ruby String#split

网上内容太专业,看不太懂
游戏中写个事件脚本 p一下




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