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

Project1

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

[已经解决] index是什么东西?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
9 小时
注册时间
2014-2-6
帖子
11
跳转到指定楼层
1
发表于 2014-2-6 23:29:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
01.rect = item_rect_for_text(index)
我看薛定谔的胖次的教程设计菜单用到了这个。想知道index到底是什么?变量?什么变量?他是在哪里定义的?

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
21626
在线时间
9413 小时
注册时间
2012-6-19
帖子
7118

开拓者短篇九导演组冠军

2
发表于 2014-2-6 23:40:27 | 只看该作者
index是个变量的名字而已,没有定义的时候就是nil
差不多像下面这种感觉
  1. def mwm5
  2.   a = 1
  3.   return a
  4. end
  5. p mwm5 #1
复制代码
  1. def mwm5(b)
  2.   a = b
  3.   return a
  4. end
  5. p mwm5(2) #2
复制代码
Ruby语言不像C语言那样必须事先定义才能使用变量(类变量除外)
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
466 小时
注册时间
2013-2-8
帖子
424
3
发表于 2014-2-7 01:03:52 手机端发表。 | 只看该作者
就这一句鬼知道那是什么。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
200
在线时间
120 小时
注册时间
2007-8-17
帖子
147
4
发表于 2014-2-7 01:41:22 | 只看该作者
通常情况是光标所在位置

这一句可能是说光标所在的项目
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

百合控

梦石
0
星屑
6643
在线时间
1275 小时
注册时间
2013-8-21
帖子
3657

开拓者

5
发表于 2014-2-7 08:33:35 | 只看该作者
目测是项目序号 用来控制描绘矩形的位置
但是不给出处也说不准
萌新瑟瑟发抖
看到我请叫我去干活
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
9 小时
注册时间
2014-2-6
帖子
11
6
 楼主| 发表于 2014-2-7 22:35:21 | 只看该作者
那部分脚本是这样的
  1. class Window_NewMenuStatus < Window_Command
  2.   #----------------------------------------------------------------------------
  3.   # * 初始化
  4.   #----------------------------------------------------------------------------
  5.   def initialize
  6.     super(160, 0)
  7.   end
  8.   #----------------------------------------------------------------------------
  9.   # * 获取窗口的宽度
  10.   #----------------------------------------------------------------------------
  11.   def window_width
  12.     return 384
  13.   end
  14.   #----------------------------------------------------------------------------
  15.   # * 获取窗口的高度
  16.   #----------------------------------------------------------------------------
  17.   def window_height
  18.     return 416
  19.   end
  20.   #----------------------------------------------------------------------------
  21.   # * 更新窗口
  22.   #----------------------------------------------------------------------------
  23.   def update
  24.     super
  25.   end
  26.   #----------------------------------------------------------------------------
  27.   # * 生成指令列表
  28.   #----------------------------------------------------------------------------
  29.   def make_command_list
  30.     for actor in $game_party.members
  31.       s = "a[#{actor.id}]"
  32.       add_command(actor.name,s.to_sym,!actor.death_state?,actor.id)
  33.     end
  34.   end
  35.   #-----------------------------------------------------------------------------
  36.   def draw_item(index)
  37.     rect = item_rect_for_text(index)
  38.     cn = $game_actors[@list[index][    b = Bitmap.new(rect.width,rect.height)
  39. :ext]].character_name
  40.     ci = $game_actors[@list[index][:ext]].character_index
  41.     cb = Cache.character(cn)
  42.     #---------------------------------------------------------------------------
  43.     #     *提取$或无$开头的点阵图2号位的图像
  44.     #---------------------------------------------------------------------------
  45.     sign = cn[/^[\!\$]./]
  46.     if sign && sign.include?('是我的问题提得不好。我想知道是什么方法调用了draw_item(index),带入index的参数是什么,在哪里。index貌似是项目编号确定矩形位置用的但我不太懂他的工作原理,求解释。)
  47.       cr = Rect.new
  48.       cr.x = cb.width / 3
  49.       cr.width = cb.width / 3
  50.       cr.height = cb.height / 4
  51.     else
  52.       cr = Rect.new
  53.       cr.x = ci % 4 * (cb.width / 4) + cb.width / 12
  54.       cr.y = ci / 4 * (cb.height / 2)
  55.       cr.width = cb.width / 12
  56.       cr.height = cb.height / 8
  57.     end
  58.     #---------------------------------------------------------------------------
  59.     #    *居中描绘点阵图
  60.     #---------------------------------------------------------------------------
  61.     #b.blt((b.width - cr.width) / 2, (b.height - cr.height) / 2, cb, cr)
  62.     self.contents.blt(rect.x * (b.width - cr.width) / 2, rect.y, cb, cr)
  63.   end
  64.   #-----------------------------------------------------------------------------
  65.   #    *定义选择框为方形(菜单宽度/4 * 48)
  66.   #-----------------------------------------------------------------------------
  67.   def item_rect(index)
  68.     rect = Rect.new
  69.     rect.width = self.contents.width / 4
  70.     rect.height = 48
  71.     rect.x = index < 4 ? index * rect.width : (index - 4) * rect.width
  72.     rect.y = index < 4 ? 0 : self.contents.height - rect.height
  73.     return rect
  74.   end
  75. end
复制代码
是我的问题提得不好。我想知道是什么方法调用了draw_item(index),带入index的参数是什么,在哪里。index貌似是项目编号确定矩形位置用的但我不太懂他的工作原理,求解释。
回复 支持 反对

使用道具 举报

Lv2.观梦者 (暗夜天使)

梦石
0
星屑
266
在线时间
2355 小时
注册时间
2009-3-13
帖子
2309

贵宾

7
发表于 2014-2-7 23:11:16 | 只看该作者
本帖最后由 Sion 于 2014-2-7 23:17 编辑

这是方法传递过来的参数,你再 Ctrl + Shift + F 全局搜 draw_item 就能找到了

PS: 一些方法找不到也许是用 attr_reader、 attr_accessor 、attr_writer 定义的,它们用来快速定义读写实例变量的方法。
比如说
  1. attr_reader :a
复制代码
就相当于
  1. def a
  2.   return @a
  3. end
复制代码
还有一些方法定义在 RGSS 内部类中,可以查阅 F1 帮助手册

点评

Ctrl+Shift+f简直神器,太感谢了!找到出处后感觉多少可以理解了。  发表于 2014-2-7 23:57

评分

参与人数 1梦石 +1 收起 理由
迷糊的安安 + 1 认可答案,非常感谢您的帮助~

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-15 21:58

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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