【解決済】カーソル移動で表示が変わるウィンドウの作り方

アバター
シンゴビッチ
記事: 38
登録日時: 2020年5月25日(月) 03:12
連絡を取る:

【解決済】カーソル移動で表示が変わるウィンドウの作り方

投稿記事by シンゴビッチ » 2021年8月16日(月) 09:48

ヘルプウィンドウのような、決定キーを押さないでカーソルが移動するだけで情報が変わるウィンドウの作り方を教えてほしいです。

アクターのメンバー編成のプラグインを独自に作成しており、多数の情報を表示するsceneで全部表示してると画面サイズが全くたりないので、ヘルプウィンドウみたいにアクターのHPやMPと言った情報がカーソルを移動しただけで変わるウィンドウが作成したいです。宜しくお願いします。
最後に編集したユーザー シンゴビッチ on 2021年8月18日(水) 15:02 [ 編集 1 回目 ]

ゲーム作成用Twitterアカウント作りました https://twitter.com/RPGVV1
アバター
くろうど
記事: 263
登録日時: 2016年1月22日(金) 20:52
お住まい: 東京都
連絡を取る:

Re: カーソル移動で表示が変わるウィンドウの作り方

投稿記事by くろうど » 2021年8月17日(火) 15:29

こんにちは。
私は、MZを触っているので、MVでは異なる点があるかもしれませんが、
考え方は同じだと思いますので、以下に記述します。

現状が分かりませんが、Window_Selectable を継承していると思いますので、
select をオーバーライドしてアクター情報(ステータス)を更新する処理を行うと良いと思います。

ちなみに、callUpdateHelpの動きも参考になる気がします。

コード: 全て選択

Window_Selectable.prototype.select = function(index) {
    this._index = index;
    this.refreshCursor();
    this.callUpdateHelp();
};


Window_Selectableを継承したWindowクラスを新規作成して、オーバーライド等します。
シーン側でこのWindowを追加します。

コード: 全て選択

Window_FormationBase = class extends Window_StatusBase {
   select(index) {
      super.select(...arguments);
      this.updateStatusWindow(index);
   }
   
   updateStatusWindow(index) {
      const members = $gameParty.members();
      if (index >= 0) {
         this._statusWindow.setActor(members[index]);
      }
   }
};


ステータス表示Windowは以下のようなクラスを新規作成すると良いと思います。
シーン側でこのWindowを追加します。

コード: 全て選択

Window_FormationStatus = class extends Window_StatusBase {
   initialize(rect) {
      super.initialize(...arguments);
      this._actor = null;
   }

   setActor(actor) {
      if (this._actor !== actor) {
         this._actor = actor;
         this.refresh();
      }
   }

   refresh() {
      super.refresh();
      this.drawItem();
   }

   drawItem() {
      if (this._actor) {
         const pw = ImageManager.faceWidth;
         const ph = ImageManager.faceHeight;
         this.drawActorFace(this._actor, PARAM_FACE_X, PARAM_FACE_Y, pw, ph);
         this.drawActorSimpleStatus(this._actor, PARAM_STATUS_X, PARAM_STATUS_Y);
      }
   }
};


尚、上記ソースコードは参考情報なので、コピペしても動かないと思います。
よろしくお願いします。
▼だいたいTwitterにいます。たぶん。
https://twitter.com/kuroudo119
アバター
シンゴビッチ
記事: 38
登録日時: 2020年5月25日(月) 03:12
連絡を取る:

Re: カーソル移動で表示が変わるウィンドウの作り方

投稿記事by シンゴビッチ » 2021年8月18日(水) 08:58

>くろうどさん
 回答ありがとうございます。ほぼ望んだどおりの情報をいただきました。
 まだ試してはいませんが、多分上手くいくのでは?と思います。

 取り急ぎ返信だけさせていただきます。
ゲーム作成用Twitterアカウント作りました https://twitter.com/RPGVV1
アバター
シンゴビッチ
記事: 38
登録日時: 2020年5月25日(月) 03:12
連絡を取る:

Re: カーソル移動で表示が変わるウィンドウの作り方

投稿記事by シンゴビッチ » 2021年8月18日(水) 15:02

>くろうどさん
 
 ありがとうございました!
 無事解読して実装する事が出来ました。助かりました!
ゲーム作成用Twitterアカウント作りました https://twitter.com/RPGVV1

“MV:質問” へ戻る