Project1

标题: 请问如何在Battle_Scnce,将Window_BattleStatus刷新? [打印本页]

作者: alianlord    时间: 2022-2-13 16:51
标题: 请问如何在Battle_Scnce,将Window_BattleStatus刷新?
在 Scene_Battle 之下,我方的Window_BattleStatus中我方的battle_members是由左到右一字横列四个。现在一个人在战斗事件中投敌了。battle_members从四个变成三个。
在同时改变了 window_width、contents_width、col_max 之下。我想把 Window_BattleStatus 给 dispose。然后重新 @status_window = Window_BattleStatus.new
这个功能脚本怎么写,请赐教。
作者: WLian    时间: 2022-2-18 13:09
va默认的Window_BattleStatus不是单列竖向排布的吗。是重写了窗口吗。
角色数量减少实际并不应该影响窗口宽高和内容宽高
按照rgss3窗口设计的逻辑,是先确定窗口大小,再计算窗口内容层大小和项目大小。
按照父类Window_Selectable的逻辑,内容层contents的大小,最小都是一页,哪怕放满item_max个项目之后并没有占满一个窗口。在Window_BattleStatus的情节中,不管battle_members是4还是3,窗口大小和内容大小都不会变化,只是在第四个角色的位置,有没有内容绘制与否。
退一步说,哪怕需要改动窗口的大小和各种数据,也不意味着一定需要释放和重新生成,通过在Window_BattleStatus中重写update,加入对在需要的时候(比如队员变动)调整窗口大小的方法即可。
作者: WLian    时间: 2022-2-18 13:17
其实只是做队友叛变的操作,完全用事件也能实现。
比如设置一个施加【叛变】buff的技能,并执行公共事件,检测所有角色,当有此效果时离队。并让对应的队友敌人入场。
作者: alianlord    时间: 2022-2-19 23:54
WLian 发表于 2022-2-18 13:09
va默认的Window_BattleStatus不是单列竖向排布的吗。是重写了窗口吗。
角色数量减少实际并不应该影响窗口宽 ...

这的确是个可行的思路,让我调试看看。谢谢。




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