本帖最后由 蝉岭Cicada 于 2015-7-11 09:39 编辑
妖精蕾贝卡 发表于 2015-7-10 23:51
測試可行,但感覺效果有些奇怪。
如果可以追加一下提示語的話就更好。
另外追問一下,如果只想指定某個部 ...
解释一下吧{:2_287:}
5.times{|t| return if @right_window.instance_variable_get(:@data)[t] == nil} 5.times #=>五次 {|t| } #=>迭代器 return #=>该行以下不执行 @right_window #=>Window_EquipRight的实例 instance_variable_get #=>取得实例变量(目的是取得 Window_EquipRight 中的 @data) @right_window.instance_variable_get(:@data) #=>获得 Window_EquipRight 中的 @data(是个数组) @right_window.instance_variable_get(:@data)[t] #=>调用数组(@data)的元素(t 为 0 到 4,迭代器迭代 5 次,依次返回 武器数据(0)、盾数据(1)、头数据(2)、身体数据(3)、装饰品数据(4)) @right_window.instance_variable_get(:@data)[t] == nil #=>如果 0 到 5 其中一项未装备则返回 true,即没有全部装备 return if @right_window.instance_variable_get(:@data)[t] == nil #=>如果没有全部装备,则该行以下不执行,即不执行 $scene = Scene_Menu.new(2),即不返回菜单 5.times{|t| return if @right_window.instance_variable_get(:@data)[t] == nil} #=>总的来说就是,五个装备,从上到下依次迭代,如果有没装备的就不返回菜单
5.times{|t| return if @right_window.instance_variable_get(:@data)[t] == nil}
5.times #=>五次
{|t| } #=>迭代器
return #=>该行以下不执行
@right_window #=>Window_EquipRight的实例
instance_variable_get #=>取得实例变量(目的是取得 Window_EquipRight 中的 @data)
@right_window.instance_variable_get(:@data) #=>获得 Window_EquipRight 中的 @data(是个数组)
@right_window.instance_variable_get(:@data)[t] #=>调用数组(@data)的元素(t 为 0 到 4,迭代器迭代 5 次,依次返回 武器数据(0)、盾数据(1)、头数据(2)、身体数据(3)、装饰品数据(4))
@right_window.instance_variable_get(:@data)[t] == nil #=>如果 0 到 5 其中一项未装备则返回 true,即没有全部装备
return if @right_window.instance_variable_get(:@data)[t] == nil #=>如果没有全部装备,则该行以下不执行,即不执行 $scene = Scene_Menu.new(2),即不返回菜单
5.times{|t| return if @right_window.instance_variable_get(:@data)[t] == nil} #=>总的来说就是,五个装备,从上到下依次迭代,如果有没装备的就不返回菜单
提示语,这样子如何
在def main里插入这段
@alert_window = Window_Base.new(0, 0, 640, 64) @alert_window.contents = Bitmap.new(640 - 32, 64 - 32) @alert_window.opacity = 0 @alert_window.contents.font.color = Color.new(255,128,128) @alert_window.contents.draw_text(0, 0, 640-32, 34, "请装备!", 2) @alert_window.visible = false
@alert_window = Window_Base.new(0, 0, 640, 64)
@alert_window.contents = Bitmap.new(640 - 32, 64 - 32)
@alert_window.opacity = 0
@alert_window.contents.font.color = Color.new(255,128,128)
@alert_window.contents.draw_text(0, 0, 640-32, 34, "请装备!", 2)
@alert_window.visible = false
在def update_right里插入这段
if @right_window.instance_variable_get(:@data)[0] == nil @alert_window.visible = true return end @alert_window.visible = false
if @right_window.instance_variable_get(:@data)[0] == nil
@alert_window.visible = true
return
end
@alert_window.visible = false
效果!!
指定的话,以下 5 种情况,自己配合用吧,用 && 或 ||
return if @right_window.instance_variable_get(:@data)[0] == nil 武器数据 return if @right_window.instance_variable_get(:@data)[1] == nil 盾数据 return if @right_window.instance_variable_get(:@data)[2] == nil 头数据 return if @right_window.instance_variable_get(:@data)[3] == nil 身体数据 return if @right_window.instance_variable_get(:@data)[4] == nil 装饰品数据 组合示范 return if @right_window.instance_variable_get(:@data)[2] == nil && @right_window.instance_variable_get(:@data)[4] == nil 如果 头数据 和 装饰品数据 是空的则不返回
return if @right_window.instance_variable_get(:@data)[0] == nil 武器数据
return if @right_window.instance_variable_get(:@data)[1] == nil 盾数据
return if @right_window.instance_variable_get(:@data)[2] == nil 头数据
return if @right_window.instance_variable_get(:@data)[3] == nil 身体数据
return if @right_window.instance_variable_get(:@data)[4] == nil 装饰品数据
组合示范
return if @right_window.instance_variable_get(:@data)[2] == nil && @right_window.instance_variable_get(:@data)[4] == nil 如果 头数据 和 装饰品数据 是空的则不返回
|