本帖最后由 Cupidk爱呗茶 于 2020-4-12 10:58 编辑
由于物品栏窗口是继承自Window_HorzCommand的横向窗口类 对拥有上下左右滚动功能的光标超类Window_Selectable方法进行了一定的修改 所以正常情况下只能进行Y坐标横向描绘
比如Window_Selectable类的rect.y = index / col_max * item_height 这种可以根据项目次序与设定列数判断换行 到了Window_HorzCommand里是直接赋值0的 (也就是描绘不判断换行)
根据楼主的需求在这里对原版物品窗口进行了一些修改 大部分直接引用自Window_Selectable的原版方法 有问题的话楼主可以随时联系【 使用方法 : 将脚本复制到插件页即可使用
那个..最后要感谢自己的师父雷君sama(gqxastg)该系统是师父提供了大量思路与实践帮助才得以实现的 阿利亚多! sfgrszqd xixi
#============================================================================== # ★ 设定部分 ★ #============================================================================== module SFSaigao COL_MAX = 7 #每行可显示的列数 LINEMAX = 2 #窗口行数 end #============================================================================== # ★ 设定结束 ★ #============================================================================== class Window_Selectable < Window_Base alias selectable_cursor_down cursor_down alias selectable_cursor_up cursor_up alias selectable_ensure_cursor_visible ensure_cursor_visible alias selectable_item_rect item_rect end class Window_ItemCategory < Window_HorzCommand include SFSaigao #-------------------------------------------------------------------------- # ● 获取显示行数 #-------------------------------------------------------------------------- def visible_line_number; return LINEMAX; end #-------------------------------------------------------------------------- # ● 获取列数 #-------------------------------------------------------------------------- def col_max; return COL_MAX; end def ensure_cursor_visible; selectable_ensure_cursor_visible; end def contents_width; width - standard_padding * 2; end def contents_height; item_height * row_max; end def cursor_down(wrap = false); selectable_cursor_down(wrap); end def cursor_up(wrap = false); selectable_cursor_up(wrap); end def item_rect(index); selectable_item_rect(index); end end
#==============================================================================
# ★ 设定部分 ★
#==============================================================================
module SFSaigao
COL_MAX = 7 #每行可显示的列数
LINEMAX = 2 #窗口行数
end
#==============================================================================
# ★ 设定结束 ★
#==============================================================================
class Window_Selectable < Window_Base
alias selectable_cursor_down cursor_down
alias selectable_cursor_up cursor_up
alias selectable_ensure_cursor_visible ensure_cursor_visible
alias selectable_item_rect item_rect
end
class Window_ItemCategory < Window_HorzCommand
include SFSaigao
#--------------------------------------------------------------------------
# ● 获取显示行数
#--------------------------------------------------------------------------
def visible_line_number; return LINEMAX; end
#--------------------------------------------------------------------------
# ● 获取列数
#--------------------------------------------------------------------------
def col_max; return COL_MAX; end
def ensure_cursor_visible; selectable_ensure_cursor_visible; end
def contents_width; width - standard_padding * 2; end
def contents_height; item_height * row_max; end
def cursor_down(wrap = false); selectable_cursor_down(wrap); end
def cursor_up(wrap = false); selectable_cursor_up(wrap); end
def item_rect(index); selectable_item_rect(index); end
end
|