查看: 2139|回复: 3

[已经解决] 如何判断一个对象是武器还是防具?

[复制链接]
梦石
0
星屑
87
在线时间
92 小时
注册时间
2013-8-16
回帖
12
发表于 2016-7-19 22:03:40 | 显示全部楼层 |阅读模式

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

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

×
draw_icon画图标的时候是根据对象的INDEX来读取IconSet中的对应位置,而这个对象可能是技能、武器、防具和状态
如何判断这个对象的类型呢?

寒

梦石
0
星屑
1049
在线时间
1391 小时
注册时间
2010-8-9
回帖
3301
发表于 2016-7-19 22:21:15 | 显示全部楼层
本帖最后由 寒冷魔王 于 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】。其子类就是所对应的类型。

评分

参与人数 1星屑 +50 收起 理由
RaidenInfinity + 50 提供回答

查看全部评分

回复

使用道具 举报

梦石
1
星屑
23246
在线时间
9564 小时
注册时间
2012-6-19
回帖
7018

开拓者短篇九导演组冠军

发表于 2016-7-19 22:47:45 | 显示全部楼层
为啥你描绘图标还要判断类型?图标素材不都在同一个文件上吗
回复

使用道具 举报

梦石
0
星屑
9716
在线时间
2775 小时
注册时间
2008-9-5
回帖
3458

开拓者短篇八RM组冠军短篇九导演组亚军白银编剧

发表于 2016-7-20 13:31:25 | 显示全部楼层
传进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
复制代码

评分

参与人数 1星屑 +100 梦石 +1 收起 理由
RaidenInfinity + 100 + 1 版主认可的回答

查看全部评分

回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部