Project1

标题: 如何判断一个对象是武器还是防具? [打印本页]

作者: il4j    时间: 2016-7-19 22:03
标题: 如何判断一个对象是武器还是防具?
draw_icon画图标的时候是根据对象的INDEX来读取IconSet中的对应位置,而这个对象可能是技能、武器、防具和状态
如何判断这个对象的类型呢?
作者: 寒冷魔王    时间: 2016-7-19 22:21
本帖最后由 寒冷魔王 于 2016-7-19 22:31 编辑

baseitem.class
如武器就是RPG::Weapon

诸如:
p $game_actors[1].equips[0].class

RGSS3中,Game_Actor变量拥有变量@equips,是元素类型为Game_BaseItem的数组,这种数据通过.class方法可以获得其内部储存的变量的类型。
而通过actor.equips获取的数组,是对应的具体类型的数组。(如武器就是RPG::Weapon类型,而不是包装了的Game_BaseItem类型)

无论以上哪种,你都可以通过baseitem.class获取其类型。
具体的类型,请查阅【帮助手册】-【RGSS 参考】-【RGSS数据结构】-【游戏库】-【RPGVXAce 数据结构】-【RPG::BaseItem】。其子类就是所对应的类型。
作者: 喵呜喵5    时间: 2016-7-19 22:47
为啥你描绘图标还要判断类型?图标素材不都在同一个文件上吗
作者: cinderelmini    时间: 2016-7-20 13:31
传进draw_icon方法的只有icon_index,
要判定的话应该在使用draw_icon方法的地方,
一般来说,那个地方(或者说,那个类里)一定有个item对象,以获得item.icon_index这个变量,
于是就在那个地方做判定:
  1. if item.is_a?(RPG::Weapon)
  2.   ...
  3. elsif item.is_a?(RPG::Armor)
  4.   ...
  5. elsif item.is_a?(RPG::Item)
  6.   ...
  7. end
复制代码





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