【解決済】メニューウィンドウの表示位置変更について

ふゆき
記事: 25
登録日時: 2019年11月23日(土) 11:47

【解決済】メニューウィンドウの表示位置変更について

投稿記事by ふゆき » 2019年11月29日(金) 07:50

こんにちは。

ゲームの解像度を1280x720に変更し、更にこちらの道楽さま制作プラグインで
メニューレイアウトの幅を960に変更しました。
http://dourakusoftweb.blog.fc2.com/blog-entry-36.html

ここから更に、基準点を中央あわせではなく左上基準にしたい場合
プラグインの何処を編集すればよいのでしょうか?

それとも、ウィンドウ表示位置はデフォルトで中央合わせでありこちらのプラグインではタッチしていないため
新しく記述を加える必要があるのでしょうか?

プログラミングの知識がないため、コアスクリプトやプラグインを見ても該当箇所がわからず、
それっぽいところを0に変えてみてはハズレで…を繰り返して困っています。

よろしくおねがいします。
最後に編集したユーザー ふゆき on 2019年12月01日(日) 14:48 [ 編集 1 回目 ]

アバター
剣崎 宗二
記事: 678
登録日時: 2016年11月12日(土) 20:36
連絡を取る:

Re: メニューウィンドウの表示位置変更について

投稿記事by 剣崎 宗二 » 2019年11月29日(金) 10:21

それとも、ウィンドウ表示位置はデフォルトで中央合わせでありこちらのプラグインではタッチしていないため
新しく記述を加える必要があるのでしょうか?

こちらが該当します。

Scene_Base.prototype.createWindowLayer の中のx,yがそれぞれ(ウィンドウ関係のレイアウトの)基準点ですね。
ただこれを直接変えてしまうとすべてのシーンに影響してしまうので、Scene_Baseの部分を変えたいシーンの物に変更する事をお勧めいたします。
----
-出先に居る場合回答が未テスト状態である事が多い為、テストは重々にお願いいたします。
-基本自分や友人の問題解決は自分で1からプラグインを書いているので、「こういうプラグインはありますか」に対しては助けになれません。ご了承ください。
ふゆき
記事: 25
登録日時: 2019年11月23日(土) 11:47

Re: メニューウィンドウの表示位置変更について

投稿記事by ふゆき » 2019年11月29日(金) 16:40

剣崎 宗二 さんが書きました:
それとも、ウィンドウ表示位置はデフォルトで中央合わせでありこちらのプラグインではタッチしていないため
新しく記述を加える必要があるのでしょうか?

こちらが該当します。

Scene_Base.prototype.createWindowLayer の中のx,yがそれぞれ(ウィンドウ関係のレイアウトの)基準点ですね。
ただこれを直接変えてしまうとすべてのシーンに影響してしまうので、Scene_Baseの部分を変えたいシーンの物に変更する事をお勧めいたします。


剣崎さま:

さっそくのご回答ありがとうございます!
ひとまずScene_Baseの箇所を書き換えてみたところ、望むとおり左上基準のレイアウトになることを確認できました。
ゲームを作り始めて間もないため、今の所ほかのシーンで基準点が左上になったことで問題は出ていないのですが、
後から困るのは目に見えているので、仰るとおり範囲をメニューシーンに限定したいとおもいます。

そこでコアスクリプトから該当箇所を探してみたところ、添付画像の箇所で
Scene_Base.prototypeで定義(?)したCreateWindowLayerというメソッドを参照しているのかな?
というところまではなんとなくわかりました。
(プログラミング勉強はじめて間もないので用語とか変だったらすみません)

2b2bc2bb1ea8707c4ede536128eb1280.png


BackgroundとupdateActorは関係ないので913行目だけを書き換えるプラグインを作ればいいと思うのですが、
実際にどういった記述をすればいいのかわからず…もしご迷惑でなければご教示いただけませんでしょうか?
自分で試してもエラーが出てしまってゲームが止まってしまいました。
(たぶんかなりトンチンカンなことをしているのでコードを乗せるまでもないかなと…)

よろしくおねがいします。
アバター
剣崎 宗二
記事: 678
登録日時: 2016年11月12日(土) 20:36
連絡を取る:

Re: メニューウィンドウの表示位置変更について

投稿記事by 剣崎 宗二 » 2019年12月01日(日) 12:20

やり方は色々ありますが、今回の私のお勧めとしては単に「Scene_Menubaseに限定して」Scene_Base.prototype.createWindowLayerを差し替えてしまうという手段ですね。
具体的には以下のコードのプラグインへの追加となります。

コード: 全て選択

Scene_MenuBase.prototype.createWindowLayer = function() {
    var width = Graphics.boxWidth;
    var height = Graphics.boxHeight;
    var x = 0;
    var y = 0;
    this._windowLayer = new WindowLayer();
    this._windowLayer.move(x, y, width, height);
    this.addChild(this._windowLayer);
};


具体的にどういう理屈かは、prototypeチェーンの継承の仕組みに関わる事なので、勉強中なのであれば……ご自分で調べた方がよいのかな、とも考えます。
----
-出先に居る場合回答が未テスト状態である事が多い為、テストは重々にお願いいたします。
-基本自分や友人の問題解決は自分で1からプラグインを書いているので、「こういうプラグインはありますか」に対しては助けになれません。ご了承ください。
ふゆき
記事: 25
登録日時: 2019年11月23日(土) 11:47

Re: メニューウィンドウの表示位置変更について

投稿記事by ふゆき » 2019年12月01日(日) 14:47

剣崎さま:

記述方法について、ご教示いただきありがとうございます。
こうして実際に見せられるとなるほどと納得できたつもりになるのですが、いざ自分でやろうとすると
どの箇所がどんな動作をしているのか、全然わかってないと実感します…
今回の部分の処理を参考に、仕組みから勉強しようとおもいます。

丁寧にご説明いただきありがとうございました!

“MV:質問” へ戻る