Project1

标题: 菜单中选择使用物品直接覆盖到物品菜单上? [打印本页]

作者: 神秘影子    时间: 2014-8-22 15:30
标题: 菜单中选择使用物品直接覆盖到物品菜单上?
本帖最后由 神秘影子 于 2014-8-22 15:41 编辑


物品画面,刚才测试使用物品时,发现右边这块被切掉了,才发现使用物品生成的新菜单不是覆盖而是替换了原菜单的位置。
于是好难看,有没有解决方法,让物品目标选择的这个窗口直接出现在原先的物品界面上方呢?


#自己的解决方法:
把原来的Window_MenuStatus保留,新创建Window_newMenuStatus,菜单读取Window_newMenuStatus,物品画面读取Window_MenuStatus,
这样增加了高度,回避了问题1;物品画面的金钱窗口可有可无,最后决定去掉,于是又回避了问题2。。。
好吧,总之是回避了问题。。
没有根本解决。。
作者: 泉塚四季    时间: 2014-8-22 16:20
本帖最后由 泉塚四季 于 2014-8-22 17:24 编辑

其实回避了问题应该就算解决了问题吧。

切割选择角色窗口下方窗口的处理是由Scene_ItemBase中的show_sub_window这个方法执行的:
  1.   def show_sub_window(window)
  2.     width_remain = Graphics.width - window.width
  3.     window.x = cursor_left? ? width_remain : 0
  4.     @viewport.rect.x = @viewport.ox = cursor_left? ? 0 : window.width
  5.     @viewport.rect.width = width_remain
  6.     window.show.activate
  7.   end
复制代码
一句一句分析代码后我们可以了解,这个方法实现这一效果的具体的做法是修改了窗口所对应的显示端口(@viewport)的宽度,使窗口只显示包含在显示端口内的那一部分。
如果希望不切割窗口的话,将viewport处理部分的代码删掉就好了:
  1.   def show_sub_window(window)
  2.     width_remain = Graphics.width - window.width
  3.     window.x = cursor_left? ? width_remain : 0
  4.     window.show.activate
  5.   end
复制代码
但是,这样的代码在实际执行过程中发现了问题,选择角色的窗口被物品等窗口挡住了。不过这个很好办,只要再手动给这个窗口设置一个高于其他遮挡物件的z坐标就解决了:
  1.   def show_sub_window(window)
  2.     width_remain = Graphics.width - window.width
  3.     window.x = cursor_left? ? width_remain : 0
  4.     window.z = 999
  5.     window.show.activate
  6.   end
复制代码
另外需要注意的是,Scene_ItemBase是Scene_Item和Scene_Skill的父类,这个改动会同时影响到技能界面和物品界面中显示窗口的方式,因此如果只希望修改其中一个界面的显示方式的话,请把这个方法单独插入到对应的类中。
作者: 蓝儿    时间: 2014-8-22 16:21
有一种叫z值的东西。。。越大越靠上。。。窝只知道这些=w=窗口脚本能找到的=w=窝也调过w




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1