Project1
标题:
index是什么东西?
[打印本页]
作者:
mike1735
时间:
2014-2-6 23:29
标题:
index是什么东西?
01.rect = item_rect_for_text(index)
我看薛定谔的胖次的教程设计菜单用到了这个。想知道index到底是什么?变量?什么变量?他是在哪里定义的?
作者:
喵呜喵5
时间:
2014-2-6 23:40
index是个变量的名字而已,没有定义的时候就是nil
差不多像下面这种感觉
def mwm5
a = 1
return a
end
p mwm5 #1
复制代码
def mwm5(b)
a = b
return a
end
p mwm5(2) #2
复制代码
Ruby语言不像C语言那样必须事先定义才能使用变量(类变量除外)
作者:
SuperMario
时间:
2014-2-7 01:03
就这一句鬼知道那是什么。
作者:
千昭
时间:
2014-2-7 01:41
通常情况是光标所在位置
这一句可能是说光标所在的项目
作者:
余烬之中
时间:
2014-2-7 08:33
目测是项目序号 用来控制描绘矩形的位置
但是不给出处也说不准
作者:
mike1735
时间:
2014-2-7 22:35
那部分脚本是这样的
class Window_NewMenuStatus < Window_Command
#----------------------------------------------------------------------------
# * 初始化
#----------------------------------------------------------------------------
def initialize
super(160, 0)
end
#----------------------------------------------------------------------------
# * 获取窗口的宽度
#----------------------------------------------------------------------------
def window_width
return 384
end
#----------------------------------------------------------------------------
# * 获取窗口的高度
#----------------------------------------------------------------------------
def window_height
return 416
end
#----------------------------------------------------------------------------
# * 更新窗口
#----------------------------------------------------------------------------
def update
super
end
#----------------------------------------------------------------------------
# * 生成指令列表
#----------------------------------------------------------------------------
def make_command_list
for actor in $game_party.members
s = "a[#{actor.id}]"
add_command(actor.name,s.to_sym,!actor.death_state?,actor.id)
end
end
#-----------------------------------------------------------------------------
def draw_item(index)
rect = item_rect_for_text(index)
cn = $game_actors[@list[index][ b = Bitmap.new(rect.width,rect.height)
:ext]].character_name
ci = $game_actors[@list[index][:ext]].character_index
cb = Cache.character(cn)
#---------------------------------------------------------------------------
# *提取$或无$开头的点阵图2号位的图像
#---------------------------------------------------------------------------
sign = cn[/^[\!\$]./]
if sign && sign.include?('是我的问题提得不好。我想知道是什么方法调用了draw_item(index),带入index的参数是什么,在哪里。index貌似是项目编号确定矩形位置用的但我不太懂他的工作原理,求解释。)
cr = Rect.new
cr.x = cb.width / 3
cr.width = cb.width / 3
cr.height = cb.height / 4
else
cr = Rect.new
cr.x = ci % 4 * (cb.width / 4) + cb.width / 12
cr.y = ci / 4 * (cb.height / 2)
cr.width = cb.width / 12
cr.height = cb.height / 8
end
#---------------------------------------------------------------------------
# *居中描绘点阵图
#---------------------------------------------------------------------------
#b.blt((b.width - cr.width) / 2, (b.height - cr.height) / 2, cb, cr)
self.contents.blt(rect.x * (b.width - cr.width) / 2, rect.y, cb, cr)
end
#-----------------------------------------------------------------------------
# *定义选择框为方形(菜单宽度/4 * 48)
#-----------------------------------------------------------------------------
def item_rect(index)
rect = Rect.new
rect.width = self.contents.width / 4
rect.height = 48
rect.x = index < 4 ? index * rect.width : (index - 4) * rect.width
rect.y = index < 4 ? 0 : self.contents.height - rect.height
return rect
end
end
复制代码
是我的问题提得不好。我想知道是什么方法调用了draw_item(index),带入index的参数是什么,在哪里。index貌似是项目编号确定矩形位置用的但我不太懂他的工作原理,求解释。
作者:
Sion
时间:
2014-2-7 23:11
本帖最后由 Sion 于 2014-2-7 23:17 编辑
这是方法传递过来的参数,你再 Ctrl + Shift + F 全局搜 draw_item 就能找到了
PS: 一些方法找不到也许是用 attr_reader、 attr_accessor 、attr_writer 定义的,它们用来快速定义读写实例变量的方法。
比如说
attr_reader :a
复制代码
就相当于
def a
return @a
end
复制代码
还有一些方法定义在 RGSS 内部类中,可以查阅 F1 帮助手册
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1