【解決済】(メニュー)スキル・アイテムの対象選択画面の位置

返信する
辛味噌
記事: 75
登録日時: 2016年10月02日(日) 23:33

【解決済】(メニュー)スキル・アイテムの対象選択画面の位置

投稿記事 by 辛味噌 »

いつもお世話になっております。
(バトルではなく)メニュー画面でスキル・アイテムを使用する対象アクターを選択するウィンドウについて
右寄せではなく左寄せにしたいと考えております。

Y軸の座標やウィンドウ自体の横幅は(汚いCodeですが…)下記でなんとかなったのですが
X軸の座標についてはthis.xに値を指定してコメントアウト外しても変化なしでした。

どこを弄れば対応できるか、どなたかご存知でしたら情報いただけますと助かります。
よろしくお願い致しますm(_ _)m

コード: 全て選択

    var _Window_MenuActor_initialize = Window_MenuActor.prototype.initialize;
    Window_MenuActor.prototype.initialize = function() {
        _Window_MenuActor_initialize.call(this);
    //    this.x = 0 ;
        this.y = 624 - 146;
    };
  
    Window_MenuActor.prototype.windowWidth = function() {
        return Graphics.boxWidth - 120;
    };
最後に編集したユーザー 辛味噌 [ 2020年5月01日(金) 21:12 ], 累計 1 回
アバター
Plasma Dark
記事: 736
登録日時: 2020年2月08日(土) 02:29
連絡する:

Re: (メニュー)スキル・アイテムの対象選択画面の位置

投稿記事 by Plasma Dark »

メニュー画面でスキル・アイテムを使用する対象アクターを選択するウィンドウについて
右寄せではなく左寄せにしたいと考えております。
Window_MenuActor はインスタンス生成時にはx座標0で固定されているので、最初はちょっと混乱しますよね。
Scene_ItemBase.prototype.showSubWindow で、ウィンドウを開くタイミングでカーソルが左にあるかどうかで、アクター選択ウィンドウを右寄せにするか左寄せにするか決定しています。
辛味噌
記事: 75
登録日時: 2016年10月02日(日) 23:33

Re: (メニュー)スキル・アイテムの対象選択画面の位置

投稿記事 by 辛味噌 »

Plasma Darkさま、ご回答いただきありがとうございます。
いただきましたヒントをもとに、rpg_scenes.jsの該当箇所を変更したところ
見事に希望の挙動となりました!

コード: 全て選択

Scene_ItemBase.prototype.showSubWindow = function(window) {
//    window.x = this.isCursorLeft() ? Graphics.boxWidth - window.width : 0;   //オリジナル
    window.x = this.isCursorLeft() ? 0 : 0;   //差し替え追加
    window.show();
    window.activate();
};
なのですが、rpg_scenes.jsを直接弄るのはマズイだろうということで別プラグインに切り出そそうと思ったのですが
どうやら素人の見よう見まねの記述では正しく認識されないようでした゚(T_T)

コード: 全て選択

var _Scene_Menu_showSubWindow      = Scene_Menu.prototype.showSubWindow;
Scene_Menu.prototype.showSubWindow = function() { 
    _Scene_Menu_showSubWindow.call(this); 
//    Scene_ItemBase.prototype.showSubWindow = function(window) { 
        window.x = this.isCursorLeft() ? 0 : 0; 
        window.show(); 
        window.activate(); 
    }; 
初歩的な内容で大変恐縮ですが、どのように記述したらよいかお知恵を拝借させていただけないでしょうか…
アバター
Plasma Dark
記事: 736
登録日時: 2020年2月08日(土) 02:29
連絡する:

Re: (メニュー)スキル・アイテムの対象選択画面の位置

投稿記事 by Plasma Dark »

コード: 全て選択

(function(){
  'use strict';
  const _Scene_ItemBase_showSubWindow = Scene_ItemBase.prototype.showSubWindow;
  Scene_ItemBase.prototype.showSubWindow = function(window) {
    _Scene_ItemBase_showSubWindow.call(this, window);
    window.x = 0;
    window.show();
    window.activate();
  };
})();
これで良いんじゃないかと思います。

Scene_Menu は別シーンなので、 Scene_Menu のメソッドを上書きしてもうまく動かないですね。
引数のwindowを忘れてしまうと、どのwindowを操作するかわからずエラーで落ちます。
辛味噌
記事: 75
登録日時: 2016年10月02日(日) 23:33

Re: (メニュー)スキル・アイテムの対象選択画面の位置

投稿記事 by 辛味噌 »

Plasma Darkさま

いただいたコードで無事に希望通り挙動することを確認いたしました。

引数が合ってないのだろうなあとは思ってましたが、functionの定義から違っていたようで…
まだまだお勉強するところが多いようです。。

ご親切にありがとうございました!!!
これにて解決とさせていただきますm(_ _)m
返信する

“MV:質問”に戻る