Project1

标题: 状态优先级有什么用? [打印本页]

作者: Beside    时间: 2009-1-21 00:25
标题: 状态优先级有什么用?
状态优先级有什么用? [LINE]1,#dddddd[/LINE]版务信息:本贴由楼主自主结贴~
作者: 妮贝雅    时间: 2009-1-21 01:26
貌似是状态图标显示的优先级
作者: Beside    时间: 2009-1-21 03:31
貌似?可以具体点么
作者: 越前リョーマ    时间: 2009-1-21 03:34
你右键帮助就看到了……
作者: Beside    时间: 2009-1-21 03:36
我是古旧的大神版……
作者: 妮贝雅    时间: 2009-1-21 03:40
同时中了两个状态
一个优先级1,一个优先级2
则显示为优先级1的状态的图标
作者: 雪流星    时间: 2009-1-21 03:40
Game_Battler里面:
  1.   def sort_states
  2.     @states.sort! do |a, b|
  3.       state_a = $data_states[a]
  4.       state_b = $data_states[b]
  5.       if state_a.priority != state_b.priority
  6.         state_b.priority <=> state_a.priority
  7.       else
  8.         a <=> b
  9.       end
  10.     end
  11.   end
复制代码

作者: 妮贝雅    时间: 2009-1-21 03:43
以下引用snstar2006于2009-1-20 19:40:59的发言:

Game_Battler里面:

   本帖相关代码如下:
def sort_states
   @states.sort! do |a, b|
     state_a = $data_states[a]
     state_b = $data_states
     if state_a.priority != state_b.priority
       state_b.priority <=> state_a.priority
     else
       a <=> b
     end
   end
end

{/pz}这么说来,貌似我理解错了OTZ
作者: Beside    时间: 2009-1-21 03:58
雪流星解释一下吧
就是最后的两个互换不明白
作者: 雪流星    时间: 2009-1-21 03:59
以下引用妮贝雅于2009-1-20 19:43:28的发言:
这么说来,貌似我理解错了OTZ

没理解错误
只是不只是显示而已
记录的数组里面也是依照优先度排列
作者: 妮贝雅    时间: 2009-1-21 04:03
以下引用snstar2006于2009-1-20 19:59:33的发言:


以下引用妮贝雅于2009-1-20 19:43:28的发言:
这么说来,貌似我理解错了OTZ

没理解错误
只是不只是显示而已
记录的数组里面也是依照优先度排列

原来如此,受教了
a<=>b是指交换a b的顺位吧?
作者: Beside    时间: 2009-1-21 04:10
这个数组重排了有没有其他作用
作者: 雪流星    时间: 2009-1-21 04:13
不是, a<=>b 是比较 a 和 b
若 a 较大 返回一个正数
若 b 较大 返回一个负数
若a b 相等 返回0

sort! 本身不带 {} 时就是用 <=> 比较後再排列的,所以这里也是用 <=> 计算
只是加上分歧:
当两者的优先度不同的时候,依照优先度排列
当两者的优先度相同的时候,依照 ID 排列 [LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~




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