【解決済】エネミーセレクトウインドウでのカーソルの挙動について

youseityan
記事: 94
登録日時: 2018年8月19日(日) 05:35

【解決済】エネミーセレクトウインドウでのカーソルの挙動について

投稿記事by youseityan » 2021年1月14日(木) 01:55

質問失礼致します。

戦闘中にスキル対象のエネミーを選択するウインドウでの
カーソル挙動なのですが
デフォルトですと、添付させていただいた画像を元に

キー右を押すと「A→B→C→D→ストップ」
キー左を押すと「Aから動かない」
キー上を押すと「Aから動かない」
キー下を押すと「A→C→ストップ」

という挙動になると思うのですが

これを

キー右、上を押すと「A→B→C→D→A(ストップせずループする)」
キー左、下を押すと「A→D→C→B→A(ストップせずループする)」

という風にカーソルがウインドウ最初、最後でループする様にし
且、キー右と上で同じ挙動、キー左と下で同じ挙動にしたいのですが
どなたかアドバイスいただけないでしょうか。
添付ファイル
無題.png
無題.png (167.46 KiB) 閲覧数: 303 回
最後に編集したユーザー youseityan on 2021年1月15日(金) 21:37 [ 編集 1 回目 ]

ecf5DTTzl6h6lJj02
記事: 175
登録日時: 2018年12月23日(日) 13:55

Re: エネミーセレクトウインドウでのカーソルの挙動について

投稿記事by ecf5DTTzl6h6lJj02 » 2021年1月14日(木) 12:14

こんにちは。
youseityan さんが書きました:質問失礼致します。

戦闘中にスキル対象のエネミーを選択するウインドウでの
カーソル挙動なのですが
デフォルトですと、添付させていただいた画像を元に

キー右を押すと「A→B→C→D→ストップ」
キー左を押すと「Aから動かない」
キー上を押すと「Aから動かない」
キー下を押すと「A→C→ストップ」

という挙動になると思うのですが

これを

キー右、上を押すと「A→B→C→D→A(ストップせずループする)」
キー左、下を押すと「A→D→C→B→A(ストップせずループする)」

という風にカーソルがウインドウ最初、最後でループする様にし
且、キー右と上で同じ挙動、キー左と下で同じ挙動にしたいのですが
どなたかアドバイスいただけないでしょうか。

以下のコードをプラグイン化して、お試しください。

コード: 全て選択

(() => {
    'use strict'

    Window_Selectable.prototype.cursorRight = function(wrap) {
        var index = this.index();
        var maxItems = this.maxItems();
        if (index < maxItems - 1 || wrap) {
            this.select((index + 1) % maxItems);
        }
    };
   
    Window_Selectable.prototype.cursorLeft = function(wrap) {
        var index = this.index();
        var maxItems = this.maxItems();
        if (index > 0 || wrap) {
            this.select((index - 1 + maxItems) % maxItems);
        }
    };
   
    Window_BattleEnemy.prototype.processCursorMove = function() {
        if (this.isCursorMovable()) {
            var lastIndex = this.index();
            if (Input.isRepeated('down')) {
                this.cursorLeft(Input.isTriggered('down'));
            }
            if (Input.isRepeated('up')) {
                this.cursorRight(Input.isTriggered('up'));
            }
            if (Input.isRepeated('right')) {
                this.cursorRight(Input.isTriggered('right'));
            }
            if (Input.isRepeated('left')) {
                this.cursorLeft(Input.isTriggered('left'));
            }
            if (!this.isHandled('pagedown') && Input.isTriggered('pagedown')) {
                this.cursorPagedown();
            }
            if (!this.isHandled('pageup') && Input.isTriggered('pageup')) {
                this.cursorPageup();
            }
            if (this.index() !== lastIndex) {
                SoundManager.playCursor();
            }
        }
    };   
})();

(キーを押しっぱなしの場合はストップする仕様は変更してません)

ところで、指示通り、右と上、左と下で同じ挙動になるようにしてありますが、
右と下、左と上の間違いではないですか?
一応確認を。
もし間違っている場合(右と下、左と上が正しい場合)は

コード: 全て選択

            if (Input.isRepeated('down')) {
                this.cursorLeft(Input.isTriggered('down'));
            }
            if (Input.isRepeated('up')) {
                this.cursorRight(Input.isTriggered('up'));
            }


コード: 全て選択

            if (Input.isRepeated('down')) {
                this.cursorRight(Input.isTriggered('down'));
            }
            if (Input.isRepeated('up')) {
                this.cursorLeft(Input.isTriggered('up'));
            }

に変更してください。
youseityan
記事: 94
登録日時: 2018年8月19日(日) 05:35

Re: エネミーセレクトウインドウでのカーソルの挙動について

投稿記事by youseityan » 2021年1月14日(木) 19:34

ecf5DTTzl6h6lJj02様
お返事、プラグインの作成ありがとうございます!

右と下、左と上の間違いではないですか?


ご指摘ありがとうございます
お恥ずかしながらその通りです :oops:
こんな私のミスにまでご考慮の上、修正verのコードまで記述いただき
重ね重ねありがとうございます :cry:
右と下、左と上verに書き換えプラグインとして導入させていただいたところ
理想の挙動になりました!

ここまで親身にご対応いただきましたのに
大変恐縮なのですがもう1つだけご相談宜しいでしょうか・・・

当方、トリアコンタン様が制作された
マウスホイール拡張プラグイン https://plugin.fungamemake.com/archives/1172
を、導入させていただいているのですが

ecf5DTTzl6h6lJj02様に記述いただいたプラグインと同時に使用したところ
エネミーセレクトウインドウでのみ
マウスホイールでカーソル移動が出来なくなるのですが
マウスホイール拡張プラグインとの共存させることは可能でしょうか?
ecf5DTTzl6h6lJj02
記事: 175
登録日時: 2018年12月23日(日) 13:55

Re: エネミーセレクトウインドウでのカーソルの挙動について

投稿記事by ecf5DTTzl6h6lJj02 » 2021年1月14日(木) 22:03

こんばんは。
youseityan さんが書きました:ecf5DTTzl6h6lJj02様に記述いただいたプラグインと同時に使用したところ
エネミーセレクトウインドウでのみ
マウスホイールでカーソル移動が出来なくなるのですが
マウスホイール拡張プラグインとの共存させることは可能でしょうか?

マウスホイール拡張プラグインに対応させてみました。
エネミー選択ウィンドウで、マウスホイールもキーボードやゲームパッドと同じカーソルの動きになり、ループします。
(キーボードの場合は、押しっぱなしの時に最後(最初)の項目でストップしますが、マウスホイールの場合はストップしません)
下記のプラグインファイルに変更してください。
EnemyWindowCursrorLoop.js
(4.95 KiB) ダウンロード数: 2 回

プラグインのヘルプにも記載していますが、
エネミー選択ウィンドウでの挙動しか変更してませんので、ほかのウィンドウとカーソルの動き方が異なります。
ご了承ください。
youseityan
記事: 94
登録日時: 2018年8月19日(日) 05:35

Re: エネミーセレクトウインドウでのカーソルの挙動について

投稿記事by youseityan » 2021年1月15日(金) 21:37

ecf5DTTzl6h6lJj02様
何から何までありがとうございます
EnemyWindowCursrorLoop.jsを試させていただいたところ
完全に理想の挙動になりました!

この度はな親身にご相談に乗っていただきありがとうございました。
作成していただいたプラグイン大切に使わせていただきます :cry:

“MV:質問” へ戻る