#计算图像
allpic = [] # 当前全部图片的数组
allpicz = [] # 当前全部图片z值的数组,与上面对应
Clothes::MAX_COUNT.times {|index|
equip = @actor.equip[index]
if equip[0] == 1
allpic += $data_weapons[equip[1]].pic if $data_weapons[equip[1]].pic != 0
allpicz += $data_weapons[equip[1]].picz if $data_weapons[equip[1]].picz != 0
elsif equip[0] == 2
allpic += $data_armors[equip[1]].pic if $data_armors[equip[1]].pic != 0
allpicz += $data_armors[equip[1]].picz if $data_armors[equip[1]].picz != 0
end
}
temp = allpicz.sort # 将所有z值按从小到大排序
temp2 = [] # 建立index对应模型
temp3 = [] # 低于基础层的数组
temp4 = [] # 基础层与头发层之间的数组
temp5 = [] # 高于头发层的数组
temp.delete(allpicz[0]) if Clothes::NO_WEAPON && @actor.equip[0][1] != 0 && $data_weapons[@actor.equip[0][1]].pic != 0
temp.each_index {|index|
temp2[index] = allpicz.index(temp[index]) # 返回allpicz中按大小的index排序。如allpicz为[7,1,9],temp2就返回[1,0,2]
}
temp2.each {|temp| # 根据allpicz中z值的大小把数据分成三个部分
if allpicz[temp].to_i < 0 # 舍弃小于0的数据
elsif allpicz[temp].to_i < 1000 # 将z值小于1000的数据放入第一层
temp3.push(temp)
elsif allpicz[temp].to_i < 2000 # 将z值大于1000小于2000的数据放入第二层
temp4.push(temp)
else # 将z值大于2000的数据放入第三层
temp5.push(temp)
end
}
rect = Rect.new(0, 0, 300, window_height)
# 描绘背景
contents.blt(0, 0, @actor.base_back, rect, 255)
# 描绘低于基础的层
temp3.each {|temp|
contents.blt(0, 0, Cache.cloth(allpic[temp]), rect, 255)
}
# 描绘基础模型
contents.blt(0, 0, @actor.base_body, rect, 255)
# 描绘低于头发的层
temp4.each {|temp|
contents.blt(0, 0, Cache.cloth(allpic[temp]), rect, 255)
}
# 描绘头发
contents.blt(0, 0, @actor.base_hair, rect, 255)
# 描绘高于头发的层
temp5.each {|temp|
contents.blt(0, 0, Cache.cloth(allpic[temp]), rect, 255)
}
#计算图像
allpic = [] # 当前全部图片的数组
allpicz = [] # 当前全部图片z值的数组,与上面对应
Clothes::MAX_COUNT.times {|index|
equip = @actor.equip[index]
if equip[0] == 1
allpic += $data_weapons[equip[1]].pic if $data_weapons[equip[1]].pic != 0
allpicz += $data_weapons[equip[1]].picz if $data_weapons[equip[1]].picz != 0
elsif equip[0] == 2
allpic += $data_armors[equip[1]].pic if $data_armors[equip[1]].pic != 0
allpicz += $data_armors[equip[1]].picz if $data_armors[equip[1]].picz != 0
end
}
temp = allpicz.sort # 将所有z值按从小到大排序
temp2 = [] # 建立index对应模型
temp3 = [] # 低于基础层的数组
temp4 = [] # 基础层与头发层之间的数组
temp5 = [] # 高于头发层的数组
temp.delete(allpicz[0]) if Clothes::NO_WEAPON && @actor.equip[0][1] != 0 && $data_weapons[@actor.equip[0][1]].pic != 0
temp.each_index {|index|
temp2[index] = allpicz.index(temp[index]) # 返回allpicz中按大小的index排序。如allpicz为[7,1,9],temp2就返回[1,0,2]
}
temp2.each {|temp| # 根据allpicz中z值的大小把数据分成三个部分
if allpicz[temp].to_i < 0 # 舍弃小于0的数据
elsif allpicz[temp].to_i < 1000 # 将z值小于1000的数据放入第一层
temp3.push(temp)
elsif allpicz[temp].to_i < 2000 # 将z值大于1000小于2000的数据放入第二层
temp4.push(temp)
else # 将z值大于2000的数据放入第三层
temp5.push(temp)
end
}
rect = Rect.new(0, 0, 300, window_height)
# 描绘背景
contents.blt(0, 0, @actor.base_back, rect, 255)
# 描绘低于基础的层
temp3.each {|temp|
contents.blt(0, 0, Cache.cloth(allpic[temp]), rect, 255)
}
# 描绘基础模型
contents.blt(0, 0, @actor.base_body, rect, 255)
# 描绘低于头发的层
temp4.each {|temp|
contents.blt(0, 0, Cache.cloth(allpic[temp]), rect, 255)
}
# 描绘头发
contents.blt(0, 0, @actor.base_hair, rect, 255)
# 描绘高于头发的层
temp5.each {|temp|
contents.blt(0, 0, Cache.cloth(allpic[temp]), rect, 255)
}