查看: 2560|回复: 2

[已经解决] 怎么修改窗口的位置

[复制链接]
梦石
5
星屑
1843
在线时间
340 小时
注册时间
2014-4-1
回帖
211
发表于 2017-8-15 14:47:33 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
本帖最后由 funxlww 于 2017-8-15 19:19 编辑

我想修改ItemCategory的xy坐标,就是物品栏上面有选项的那一块,x坐标是可以改的,但是y坐标怎么改都不会动[pre lang="ruby"]#encoding:utf-8
#==============================================================================
# ■ Window_ItemCategory
#------------------------------------------------------------------------------
#  物品画面和商店画面中,显示装备、所持物品等项目列表的窗口。
#==============================================================================

class Window_ItemCategory < Window_HorzCommand
  #--------------------------------------------------------------------------
  # ● 定义实例变量
  #--------------------------------------------------------------------------
  attr_reader   :item_window
  #--------------------------------------------------------------------------
  # ● 初始化对象
  #--------------------------------------------------------------------------
  def initialize
    super(0+100, 100)#我在这里修改xy坐标,x可以修改,但是y轴不管输入什么数字都不会动
  end
  #--------------------------------------------------------------------------
  # ● 获取窗口的宽度
  #--------------------------------------------------------------------------
  def window_width
    360#Graphics.width - 100
  end
  #--------------------------------------------------------------------------
  # ● 获取列数
  #--------------------------------------------------------------------------
  def col_max
    return 4
  end
  #--------------------------------------------------------------------------
  # ● 更新画面
  #--------------------------------------------------------------------------
  def update
    super
    @item_window.category = current_symbol if @item_window
  end
  #--------------------------------------------------------------------------
  # ● 生成指令列表
  #--------------------------------------------------------------------------
  def make_command_list
    add_command(Vocab::item,     :item)
    add_command(Vocab::weapon,   :weapon)
    add_command(Vocab::armor,    :armor)
    add_command(Vocab::key_item, :key_item)
  end
  #--------------------------------------------------------------------------
  # ● 设置物品窗口
  #--------------------------------------------------------------------------
  def item_window=(item_window)
    @item_window = item_window
    update
  end
end
[/pre]

无限の剣制

梦石
0
星屑
10445
在线时间
5019 小时
注册时间
2013-2-28
回帖
4942

开拓者贵宾

发表于 2017-8-15 21:38:28 | 显示全部楼层
本帖最后由 VIPArcher 于 2017-8-15 21:41 编辑

ItemCategory 窗口在实例化的时候会调整y坐标。这个可以在Scene_Item里生成分类窗口方法里看到
  1. class Scene_Item < Scene_ItemBase

  2.   #......

  3.   #--------------------------------------------------------------------------
  4.   # ● 生成分类窗口
  5.   #--------------------------------------------------------------------------
  6.   def create_category_window
  7.     @category_window = Window_ItemCategory.new
  8.     @category_window.viewport = @viewport
  9.     @category_window.help_window = @help_window
  10.     @category_window.y = @help_window.height     #这里调整了分类栏的y坐标,让他等于帮助窗口的高你也可以在这里调整他的x,y坐标
  11.     # 例如 @category_window.x = 233
  12.     @category_window.set_handler(:ok,     method(:on_category_ok))
  13.     @category_window.set_handler(:cancel, method(:return_scene))
  14.   end

  15.   #.......

  16. end
复制代码

对窗口坐标的调整请务必在实例化之后进行调整而不是在初始化方法里调整。
所以你可以还原你改的这里,然后在物品栏场景Scene_Item里生产物品分类窗口后调整其坐标

点评

解决了,谢谢  发表于 2017-8-16 11:37
回复 1 0

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部