Project1

标题: 问两个有关Window_Base的问题 [打印本页]

作者: 夏季冰川    时间: 2009-8-13 10:04
标题: 问两个有关Window_Base的问题
今天把Window_Base看了一遍,有以下两个问题不太明白:      

      1.Window_Base里第159行又一个$data_states[i].rating,去翻F1时说是额定值

(范围0~10)的意思,请问额定值代表什么东西?

      2. Window_Base第192~193行这两句话是什么意思(主要是第2句):
   
    text = make_battler_state_text(actor, width, true)
   
    self.contents.font.color = actor.hp == 0 ? knockout_color : normal_color
作者: azuredam    时间: 2009-8-13 10:13
提示: 作者被禁止或删除 内容自动屏蔽
作者: tommay    时间: 2009-8-13 10:21
1.就是数据库->状态里面的“定量”

菜蛋之家的解释:
定量:显示状态的名称和动画的优先顺序。同时附加多个状态的时候,该值大的状态优先显示。和定量一样的还有「限制」选项,那个也同样是 ID 大的优先。而且如果定量为 0 的话,其状态名称不会显示。可设定 0~10 之间的数值。

通过Window_Base里面的定义可以看出来,rating=0的状态是不会在菜单中显示的,可以利用此点有别的用途。


2.make_battler_state_text函数在前面不远处定义过,遇到这种不理解的函数可以Ctrl_Shift_f找到定义的地方。
self.contents.font.color = actor.hp == 0 ? knockout_color : normal_color
这一句有要注意的是运算符的优先级。在这里用于赋值的“=”号优先级是最低的,应当最后计算。
先看后面的,后面的是一个“条件运算符”,不理解的话可以按F1搜索“条件运算符”。
整个这句话的意思是:如果角色的hp=0的话,文字色设置为knockout_color,否则设置为normal_color。
作者: azuredam    时间: 2009-8-13 11:00
提示: 作者被禁止或删除 内容自动屏蔽
作者: tommay    时间: 2009-8-13 11:21
玄月大好,本无心“抢生意”,无奈我回帖时还无人回啊,可惜码字多了点,不过都为帮助LZ,玄月大就一笑置之吧~
作者: 夏季冰川    时间: 2009-8-13 15:03
找到了,谢谢tommay和(玄月的MJ?)!
表达式1 ? 表达式2 : 表达式3

if 表达式1 then 表达式2 else 表达式3 end
相同啊. 那就说明战斗不能的时候与战斗中显示的文字颜色是不同的.

make_battler_state_text函数在153行定义过了.但定义的是(battler, width, need_normal)
为什么到下面就变成了(actor, width, true)了呢?
作者: tommay    时间: 2009-8-13 15:20
定义时后面括号里的是“形式参数”,通俗地讲,只是形式而无实在含义。举个例子吧:
def add(a,b)
   sum = a + 2 * b
   return sum
end
这个函数的意义是:需要两个参数,返回值是把第一个参数和第二个参数的2倍相加,只要这个意义不变,至于你把a,b换成c,d还是m,n都一样。
作者: 夏季冰川    时间: 2009-8-13 15:21
懂了,谢谢tommay!




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