设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1550|回复: 3
打印 上一主题 下一主题

[已经解决] 问PARTY类中的几个变量问题

[复制链接]

Lv3.寻梦者

梦石
0
星屑
4169
在线时间
258 小时
注册时间
2013-10-13
帖子
815
跳转到指定楼层
1
发表于 2015-7-9 11:48:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
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

Lv1.梦旅人

梦石
0
星屑
76
在线时间
1379 小时
注册时间
2012-7-5
帖子
1698

开拓者

2
发表于 2015-7-9 13:05:41 | 只看该作者
1. 对hash调用include?方法相当于hash.keys.include?
2. 这里的item_number是方法, 见152行
3. 是RPG::Item类(见F1-RGSS参考-游戏库-RPGXP 数据结构-RPG::Item), 里面保存了数据库-道具里的设置项
4. 括号代表优先级 也是为了防止歧义 在不确定会不会歧义的时候加上括号为妙; 1和2注释里不是写了么一个是战斗时一个是菜单时

点评

@items.include?(item_id) ? @items[item_id] : 0 我知道@items.include?(item_id)的意思,中间的“?”和 @items[item_id]还有“:0”就看不懂  发表于 2015-7-9 22:22

评分

参与人数 1梦石 +1 收起 理由
RyanBern + 1 认可答案

查看全部评分


  -fk: -azogi:
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
4169
在线时间
258 小时
注册时间
2013-10-13
帖子
815
3
 楼主| 发表于 2015-7-9 22:24:34 | 只看该作者
补充下::(occasion == 0 or occasion == 1)和 :(occasion == 0 or occasion == 2)是什么意思?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
76
在线时间
1379 小时
注册时间
2012-7-5
帖子
1698

开拓者

4
发表于 2015-7-10 08:57:30 | 只看该作者
xxx ? yyy : zzz是if xxx; yyy; else zzz end的另一种写法,可参考F1脚本入门

点评

谢谢了  发表于 2015-7-11 14:09

  -fk: -azogi:
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-9-23 07:20

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表