【解決済】オプション画面に説明文をつける

アバター
栗下義孝
記事: 22
登録日時: 2017年2月28日(火) 17:48
連絡を取る:

【解決済】オプション画面に説明文をつける

投稿記事by 栗下義孝 » 2017年5月22日(月) 22:45

こんにちは。また皆さんの力をお借りしたく、投稿させて頂きます。

件名通りオプション画面に説明文を追加したいと思い、見よう見まねでプラグインを作成しました。
しかしどうしても文章の表示の仕方がわからず困っています。
まずはじめに、当方はスクリプト素人のため他者のプラグインから切り貼りして作っていますので、
根本的な部分が間違っているかと思います。その辺も一緒に説明して頂けると嬉しいです。

<やりたいこと>
オプション画面に新しく追加したWindowに「説明文」を追加する。
説明文はカーソルが移動するとそれにあった文章が表示される。

添付画像は現段階でのオプション画面です。
エラーがでないように、無理やりこじつけた部分もございます(82行目)
他にトリアコンタンさんの「オプション任意項目作成」、ツミオさんの「バー追加」プラグインを導入しています。

かなり複雑なので難しい場合はあきらめようと思っています。
是非みなさまの力をお貸し下さい。宜しくお願い致しますm(_ _)m
添付ファイル
OptionsScreen.js
(3.74 KiB) ダウンロード数: 69 回
image.png
最後に編集したユーザー 栗下義孝 on 2017年6月04日(日) 23:18 [ 編集 1 回目 ]

------------------------------------------------------
気ままにアダルトゲーム製作中… :mrgreen:

栗下 義孝 (くりげ よしたか)
[ HP ] http://kurige.net/
[ Twitter ] http://twitter.com/kurige_y
------------------------------------------------------
アバター
トリアコンタン
記事: 2311
登録日時: 2015年11月10日(火) 21:13
お住まい: きのこ王国
連絡を取る:

Re: オプション画面に説明文をつける

投稿記事by トリアコンタン » 2017年5月22日(月) 22:59

こんばんは!
添付のプラグインを拝見し、2行ほど変更してみました。
レイアウトなど考慮すべき点はまだありますが、とりあえずこれでパラメータで指定した文章が表示されます。

コード: 全て選択

//=============================================================================
// OptionsScreen.js
//=============================================================================

/*:
 * @plugindesc Alternative Options screen layout.
 * @author Yoshitaka Kurige
 *
 * @help This plugin does not provide plugin commands.
 */

/*:ja
 * @plugindesc オプション画面のレイアウトを変更します。
 * @author 栗下義孝
 *
 * @param Info_alwaysDash
 * @desc 「常時ダッシュ」の説明文章です。
 * @default 常にプレイヤーをダッシュ状態します。
 *
 * @param Info_bgmVolume
 * @desc 「BGM 音量」の説明文章です。
 * @default BGMの音量を調節します。
 *
 * @help このプラグインには、プラグインコマンドはありません。
 */

(function() {

   var parameters = PluginManager.parameters('OptionsScreen');
   var Info_Text = {
      'alwaysDash': String(parameters['Info_alwaysDash'] || '常にプレイヤーをダッシュ状態にします。'),
      'bgmVolume': String(parameters['Info_bgmVolume'] || 'BGMの音量を調節します。'),
   } // 試作段階のため項目は途中

   // -----------------------------------------------------
   //
   // 既存オプションの細かな設定変更
   //
   // -----------------------------------------------------

   Window_Options.prototype.windowWidth = function() {
       return 530; // ウィンドウ幅に対して65%の幅
   };

   Window_Options.prototype.updatePlacement = function() {
       this.x = (Graphics.boxWidth - this.width) / 2;
       this.y = (Graphics.boxHeight - this.height + 55) / 2; //新規ウィンドウ分下げる
   };

   Window_Options.prototype.addGeneralOptions = function() {
       this.addCommand(TextManager.alwaysDash, 'alwaysDash');
//       this.addCommand(TextManager.commandRemember, 'commandRemember');
   };

   Window_Options.prototype.addVolumeOptions = function() {
       this.addCommand(TextManager.bgmVolume, 'bgmVolume');
       this.addCommand(TextManager.bgsVolume, 'bgsVolume');
//       this.addCommand(TextManager.meVolume, 'meVolume');
       this.addCommand(TextManager.seVolume, 'seVolume');
   };

   // -----------------------------------------------------
   //
   // 新規ウィンドウの作成
   //
   // -----------------------------------------------------

   var _Scene_Options_create = Scene_Options.prototype.create;
   Scene_Options.prototype.create = function() {
      _Scene_Options_create.call(this);
      var width = 530;
      var height = 70;
      var x = (Graphics.boxWidth - width) / 2;
      var y = 35;
      this._InfoWindow = new Window_Info(x, y, width, height);
      this.addWindow(this._InfoWindow);
   };

   var _Scene_Options_update = Scene_Options.prototype.update;
   Scene_Options.prototype.update = function() {
      _Scene_Options_update.call(this);
      //-選択中のコマンドウィンドウのシンボルの値を取得しています。---
      var selectedSymbol = this._optionsWindow.commandSymbol(this._optionsWindow.index());
      this._InfoWindow.setText(Info_Text[selectedSymbol]);
        //--------------------------------------------------------------
   };

   // -----------------------------------------------------
   //
   // 新規ウィンドウの設定
   //
   // -----------------------------------------------------

   function Window_Info() {
      this.initialize.apply(this, arguments);
   };

   Window_Info.prototype = Object.create(Window_Base.prototype);
   Window_Info.prototype.consrructor = Window_Info;

   Window_Info.prototype.initialize = function(x, y, width, height) {
      Window_Base.prototype.initialize.call(this, x, y, width, height);
      this._text = '';
   };

   Window_Info.prototype.setText = function(text) {
      //-前回と描画内容が同じ場合は描画しないことでパフォーマンスの低下を防ぎます。
      if (this._text === text) return;
        //---------------------------------------------------------------------------
      this._text = text;
      this.refresh();
   };

   Window_Info.prototype.clear = function() {
      this.setText('');
   };

   // 新規ウィンドウ内の中身
   Window_Info.prototype.refresh = function() {
      this.contents.clear();
      this.drawIcon(17, -5, 0);
      this.drawText(this._text, 28, 0);
   };

})();
プラグイン関連のトラブルが発生した際の切り分けと報告の方法です。
http://qiita.com/triacontane/items/2e227e5b5ce9503a2c30

[Blog] : http://triacontane.blogspot.jp/
[Twitter]: https://twitter.com/triacontane/
[GitHub] : https://github.com/triacontane/
アバター
栗下義孝
記事: 22
登録日時: 2017年2月28日(火) 17:48
連絡を取る:

Re: オプション画面に説明文をつける

投稿記事by 栗下義孝 » 2017年5月23日(火) 09:37

トリアコンタンさん>

いつもお世話になっております。ご回答ありがとうございました!

たった2行の追加であっという間に悩みが改善され非常に助かりました!
説明も添えていただき分かりやすいです。
仰るとおりレイアウトなど手探りで凡庸性のない書き方となってしまっています。
(幅の計算や表示位置調整など)
引き続き自分でも解決できないか探ってみます。

トリアコンタンさんの「オプション任意項目作成」プラグインで追加した項目は、
ConfigManagerに追加されている'Boolean'(スイッチ)や'Number'(数値設定)の後ろに追加した番号を振って設定しました。
他にも同じ悩みを抱えた方がいらっしゃいましたら参考にして下さい。

それではご回答ありがとうございました。
------------------------------------------------------
気ままにアダルトゲーム製作中… :mrgreen:

栗下 義孝 (くりげ よしたか)
[ HP ] http://kurige.net/
[ Twitter ] http://twitter.com/kurige_y
------------------------------------------------------

“MV:質問” へ戻る