查看: 5579|回复: 1

[已经解决] 物品栏分类换行

[复制链接]
梦石
0
星屑
1461
在线时间
815 小时
注册时间
2013-8-3
回帖
355
发表于 2020-4-11 20:13:59 | 显示全部楼层 |阅读模式
悬赏800星屑已解决
怎么把多出的分类换第二列去
232201r11ycspnroprls40.png

最佳答案

查看完整内容

由于物品栏窗口是继承自Window_HorzCommand的横向窗口类 对拥有上下左右滚动功能的光标超类Window_Selectable方法进行了一定的修改 所以正常情况下只能进行Y坐标横向描绘 比如Window_Selectable类的rect.y = index / col_max * item_height 这种可以根据项目次序与设定列数判断换行 到了Window_HorzCommand里是直接赋值0的 (也就是描绘不判断换行) 根据楼主的需求在这里对原版物品窗口进行了一些修改 大部分直接引用自Window_Se ...

【同人游戏】勇者斗恶龙TG
欢迎加入游戏测试群333599798
如有需私聊请加QQ:516425000
梦石
3
星屑
7336
在线时间
608 小时
注册时间
2019-9-15
回帖
112

R考场第七期金奖

发表于 2020-4-11 20:14:00 | 显示全部楼层
本帖最后由 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

[pre lang="ruby" line="1"]#==============================================================================
# ★ 设定部分 ★
#==============================================================================
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
[/pre]


评分

参与人数 1赞 +1 收起 理由
gqxastg + 1 塞糖

查看全部评分

********
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部