ウインドウサイズを調整するプラグインを使っています。(参照する変数の値によってウインドウの縦幅を変えるというもの)
バトル直前に変数代入を実現したくて、
Scene_Battle.prototype.startを再定義し入力したパラメータをコモンイベントのIDとし、コモンイベントを呼び出せるプラグインを作り、変数操作をし、うまくいったかのように見えたのですが、「~が出現!」のウインドウだけスルーされ、(ウインドウのサイズが変わらず)、そのあとはうまくウインドウサイズが変わるという結果になりました
「~が出現」の直前で変数を代入するにはどうすればよいのでしょうか、プログラミング自体始めたばかりなのですが、どなたかご教授ください
【解決済み】バトルスタート時のメッセージ
【解決済み】バトルスタート時のメッセージ
最後に編集したユーザー inuneko [ 2022年10月31日(月) 17:36 ], 累計 1 回
- Plasma Dark
- 記事: 736
- 登録日時: 2020年2月08日(土) 02:29
- 連絡する:
Re: バトルスタート時のメッセージ
ウィンドウの縦幅とは、メッセージウィンドウの行数のことでしょうか。ウインドウサイズを調整するプラグインを使っています。(参照する変数の値によってウインドウの縦幅を変えるというもの)
利用されているプラグインの入手元を可能であればURL込で提示していただけると、回答側の認知負荷が軽減され、より解決につながりやすくなります。
戦闘中のみメッセージウィンドウの行数を変更したい、ということでしょうか。バトル直前に変数代入を実現したくて
戦闘開始時のメッセージ表示は、戦闘中のコモンイベント処理の開始よりも先に行われます。
メッセージウィンドウのサイズ調整を行うプラグインを使いつつ、このメッセージのウィンドウサイズも含めて変更したいとなると、コモンイベントによる変数操作ではなく、プラグイン内で直接変数を操作してしまうのが楽でしょうか。
コード: 全て選択
(() => {
'use strict';
const VARIABLE_ID = 1;
const MESSAGE_WINDOW_ROWS_IN_BATTLE = 3;
const _Scene_Battle_start = Scene_Battle.prototype.start;
Scene_Battle.prototype.start = function() {
$gameVariables.setValue(VARIABLE_ID, MESSAGE_WINDOW_ROWS_IN_BATTLE);
_Scene_Battle_start.call(this);
};
})();
戦闘中とそれ以外でメッセージウィンドウの行数を変えたいが、それぞれは固定値で良いという場合には、別のアプローチもあります。
コード: 全て選択
(() => {
'use strict';
const MESSAGE_WINDOW_ROWS_IN_BATTLE = 3;
Scene_Battle.prototype.messageWindowRect = function() {
const width = Graphics.boxWidth;
return new Rectangle(
(Graphics.boxWidth - width) / 2,
0,
width,
this.calcWindowHeight(MESSAGE_WINDOW_ROWS_IN_BATTLE, false) + 8
);
};
})();
継承されている定義をScene_Battleクラスで上書きすれば、マップ上のメッセージウィンドウと行数を変えることができます。
Re: バトルスタート時のメッセージ
粗雑な質問に丁寧にご回答くださり本当に感謝しています
ご提案していただいたように「メッセージウィンドウの大きさはScene_Messageクラスで定義されている」
ことを確認し、そちらのアプローチを採用することといたしました
不誠実な質問文のことを謝罪します、申し訳ありませんでした
本当にありがとうございました、またご縁があればよろしくお願いします
ご提案していただいたように「メッセージウィンドウの大きさはScene_Messageクラスで定義されている」
ことを確認し、そちらのアプローチを採用することといたしました
不誠実な質問文のことを謝罪します、申し訳ありませんでした
本当にありがとうございました、またご縁があればよろしくお願いします