Project1

标题: 在学习RGSS的脚本,有个问题请教 [打印本页]

作者: limaolinghu    时间: 2012-7-2 15:10
标题: 在学习RGSS的脚本,有个问题请教
看Scene_Battle  类里面的这个函数
  
  def make_action_orders
    @action_battlers = []
    unless $game_troop.surprise
      @action_battlers += $game_party.members
    end
    unless $game_troop.preemptive
      @action_battlers += $game_troop.members
    end
    for battler in @action_battlers
      battler.action.make_speed
    end
    @action_battlers.sort! do |a,b|
      b.action.speed - a.action.speed
    end
  end

最后这个a,b是什么?既不是成员变量,也不是全局变量,也没看到yield关键字,求教,谢谢。dsu_plus_rewardpost_czw
作者: 铅笔描绘的思念    时间: 2012-7-2 15:56
主动战斗者用A代表,A行动的目标则用B代表。
作者: limaolinghu    时间: 2012-7-2 16:04
铅笔描绘的思念 发表于 2012-7-2 15:56
主动战斗者用A代表,A行动的目标则用B代表。

谢谢,我按照上下文可以猜到意思,但我没理解这里的语法,能帮忙介绍下这里使用的是什么语法吗?
作者: limaolinghu    时间: 2012-7-3 10:44
自己顶一下
作者: limaolinghu    时间: 2012-7-3 11:19
好吧,自己找到答案了

sort
sort!
sort {|a, b| ... }
sort! {|a, b| ... }
将数组内容排序。若是带区块调用,则传递两个参数给区块,用区块计算的结果进行排序。不带区块时,使用 <=> 对元素进行比较。sort! 则是对数组元素进行破坏型更新。

sort 返回一个新的、并进行过排序的数组,而 sort! 必定返回 self。





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