お世話になります。よろしく願います。
選択肢表示の位置(上下Y軸)を一時的に変更したいと考えています。
1場面のみでそれを行いたいので、それ以外はデフォルトの表示でしたいと考えています。
その為、コアスクリプトの数値を変更するなど他に影響を及ぼすものではなく
そのシーンのみで戻せる形に出来ないでしょうか。
プラグインや、スクリプトで一時的に可能な方法があればアドバイスを頂ければと思います。
どうぞよろしくお願い致します。
(解決しました)選択肢表示の位置(上下Y軸)を一時的に変更したい
(解決しました)選択肢表示の位置(上下Y軸)を一時的に変更したい
最後に編集したユーザー KITCHEN [ 2022年2月04日(金) 16:29 ], 累計 1 回
Re: 選択肢表示の位置(上下Y軸)を一時的に変更したい
プラグインを作って解決する方法を順を追って書いてみます。
選択肢の位置を決定しているのはコアスクリプトrpg_windows.jsの Window_ChoiceList.prototype.updatePlacement というメソッドです。
ここでウィンドウ位置の設定に応じてX座標(this.x)とy座標(this.y)を入力しています。
この値を以下のように上書きするとy座標の位置が変数yの値に応じて変化します。
これだと使い終わった時0に戻すのが面倒なので位置を上書きし終わったら変数を0にリセットするようにします。
コアスクリプトへの追記の場合はこれで完成です。
競合しにくいようにプラグイン化すると以下のようになります。(プラグイン化の方法はこちらを参照 https://tkool.jp/mz/plugin/make/koushiki.html)
これを使いたい変数番号に変えてメモ帳等に貼り付けて保存し、拡張子を.jsに変更すればプラグインになります。
選択肢の位置を決定しているのはコアスクリプトrpg_windows.jsの Window_ChoiceList.prototype.updatePlacement というメソッドです。
ここでウィンドウ位置の設定に応じてX座標(this.x)とy座標(this.y)を入力しています。
この値を以下のように上書きするとy座標の位置が変数yの値に応じて変化します。
コード: 全て選択
Window_ChoiceList.prototype.updatePlacement = function() {
var positionType = $gameMessage.choicePositionType();
var messageY = this._messageWindow.y;
this.width = this.windowWidth();
this.height = this.windowHeight();
switch (positionType) {
case 0:
this.x = 0;
break;
case 1:
this.x = (Graphics.boxWidth - this.width) / 2;
break;
case 2:
this.x = Graphics.boxWidth - this.width;
break;
}
if (messageY >= Graphics.boxHeight / 2) {
this.y = messageY - this.height;
} else {
this.y = messageY + this._messageWindow.height;
}
//↓追記分
this.y = this.y + $gameVariables.value(120); //y座標に元のy座標+変数120の値を代入
};
コード: 全て選択
//↓追記分
this.y = this.y + $gameVariables.value(120); //y座標に元のy座標+変数120の値を代入
$gameVariables.setValue(120, 0); //代入後変数を0に戻す
競合しにくいようにプラグイン化すると以下のようになります。(プラグイン化の方法はこちらを参照 https://tkool.jp/mz/plugin/make/koushiki.html)
コード: 全て選択
const _Window_ChoiceList_prototype_updatePlacement = Window_ChoiceList.prototype.updatePlacement;
Window_ChoiceList.prototype.updatePlacement = function() {
_Window_ChoiceList_prototype_updatePlacement.apply(ths,arguments); //元の処理を実行
//↓追記分
this.y = this.y + $gameVariables.value(120); //y座標に元のy座標+変数120の値を代入
$gameVariables.setValue(120, 0); //代入後変数を0に戻す
Re: 選択肢表示の位置(上下Y軸)を一時的に変更したい
なぴぃ 様
アドバイスを頂戴しましてありがとうございます。
参考に致しまして、試してみたいと思います。感謝します。
アドバイスを頂戴しましてありがとうございます。
参考に致しまして、試してみたいと思います。感謝します。
Re: 選択肢表示の位置(上下Y軸)を一時的に変更したい
---
JavaScriptの基本を学習せずにツクールのプラグインやスクリプトを使って横着してゲームを作ろうとしている人間です。
そのような者なので、適当な投稿をするかも知れません。
他の方の投稿を信用してください。
JavaScriptの基本を学習せずにツクールのプラグインやスクリプトを使って横着してゲームを作ろうとしている人間です。
そのような者なので、適当な投稿をするかも知れません。
他の方の投稿を信用してください。
Re: 選択肢表示の位置(上下Y軸)を一時的に変更したい
ムノクラさま、ありがとうございます。わざわざお手数をお掛けしまして感謝します。