Project1
标题:
问PARTY类中的几个变量问题
[打印本页]
作者:
kvkv97
时间:
2015-7-9 11:48
标题:
问PARTY类中的几个变量问题
Game_Party
#--------------------------------------------------------------------------
# ● 获取物品的所持数
#--------------------------------------------------------------------------
def item_number(item_id)
# 如果 hash 个数数值不存在就返回 0
return @items.include?(item_id) ? @items[item_id] : 0
问题1:这个语句的意思是什么,看不懂?@items已经被 定义成哈希表了,哪里来的数组?
#--------------------------------------------------------------------------
# ● 增加物品 (减少)
# item_id : 物品 ID
#--------------------------------------------------------------------------
def gain_item(item_id, n)
# 更新 hash 的个数数据
if item_id > 0
@items[item_id] = [[item_number(item_id) + n, 0].max, 99].min
问题2:item_number是什么类的变量?怎么可以在这里出现?
end
end
#--------------------------------------------------------------------------
# ● 判断物品可以使用
#--------------------------------------------------------------------------
def item_can_use?(item_id)
# 物品个数为 0 的情况
if item_number(item_id) == 0
# 不能使用
return false
end
# 获取可以使用的时候
occasion = $data_items[item_id].occasion
问题3:第2个occasion是什么类的方法或者属性?
# 战斗的情况
if $game_temp.in_battle
# 可以使用时为 0 (平时) 或者是 1 (战斗时) 可以使用
return (occasion == 0 or occasion == 1)
问题4:(occasion == 0 or occasion == 1)为什么要用小括号?这里的occasion == 1,为什么下面的occasion == 2?
end
# 可以使用时为 0 (平时) 或者是 2 (菜单时) 可以使用
return (occasion == 0 or occasion == 2)
end
作者:
kuerlulu
时间:
2015-7-9 13:05
1. 对hash调用include?方法相当于hash.keys.include?
2. 这里的item_number是方法, 见152行
3. 是RPG::Item类(见F1-RGSS参考-游戏库-RPGXP 数据结构-RPG::Item), 里面保存了数据库-道具里的设置项
4. 括号代表优先级 也是为了防止歧义 在不确定会不会歧义的时候加上括号为妙; 1和2注释里不是写了么一个是战斗时一个是菜单时
作者:
kvkv97
时间:
2015-7-9 22:24
补充下::(occasion == 0 or occasion == 1)和 :(occasion == 0 or occasion == 2)是什么意思?
作者:
kuerlulu
时间:
2015-7-10 08:57
xxx ? yyy : zzz是if xxx; yyy; else zzz end的另一种写法,可参考F1脚本入门
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1