ページ 11

【解決済み】オプションからゲーム終了(タイトルに戻る)をするには?

Posted: 2021年6月26日(土) 18:17
by rpgcode
通常はメニュー内にゲーム終了(タイトルに戻る)コマンドがありますが、このコマンドをメニューではなくオプション内で呼び出すにはどうすればいいのでしょうか?

わかる方、教えて頂けると助かります。
よろしくお願いします。

Re: オプションからゲーム終了(タイトルに戻る)をするには?

Posted: 2021年6月26日(土) 23:04
by WTR
Scene_Options と Window_Options を弄ればいいんじゃないでしょうか。
それぞれ、Scene_GameEnd と Window_GameEnd が参考になると思います。

Window_Options の makeCommandList() に追加のコマンドを記述すればよいでしょう。
Window_GameEnd の makeCommandList() が参考に…というかそのままです。

コマンドを追加しただけだと
タイトルへ  ON とか意味の分からない表示になります。
ON / OFF をコンフィグするわけじゃないので余計なテキストは描画しないようにするとよいでしょう。
statusText() を弄ればよさそうです。drawItem() でもいいかも

Scene_Options をみるとウィンドウのOKハンドラが設定されていないので
Scene_GameEnd の createCommandWindow()、commandToTitle() あたりを参考に(…というかコレもそのままですが
同様の処理をScene_Options に追加しておいて
Window_Options の processOk() にOKハンドラの呼び出しを追加する。

こんなとこでしょうか。

Re: オプションからゲーム終了(タイトルに戻る)をするには?

Posted: 2021年6月28日(月) 05:20
by rpgcode
WTRさん

コアスクリプトをいじればできるんですね。
今はコアスクリプトまで手が回らないので、少しずつ見てみようと思います。
教えて下さりどうもありがとうございました!

Re: オプションからゲーム終了(タイトルに戻る)をするには?

Posted: 2021年6月28日(月) 09:15
by WTR
書き殴ったようなやつですがとりあえず動くと思います。

コード: 全て選択

(() => {
    "use strict";
const _Scene_Options_createOptionsWindow = Scene_Options.prototype.createOptionsWindow;
Scene_Options.prototype.createOptionsWindow = function() {
	_Scene_Options_createOptionsWindow.call(this);
	this._optionsWindow.setHandler('toTitle',  this.commandToTitle.bind(this));
};

Scene_Options.prototype.commandToTitle = function() {
	this.fadeOutAll();
	SceneManager.goto(Scene_Title);
};

const _Window_Options_makeCommandList = Window_Options.prototype.makeCommandList;
Window_Options.prototype.makeCommandList = function() {
	_Window_Options_makeCommandList.call(this);
	this.addCommand(TextManager.toTitle, 'toTitle');
};

const _Window_Options_statusText = Window_Options.prototype.statusText;
Window_Options.prototype.statusText = function(index) {
	const result = _Window_Options_statusText.call(this, index);
	if (this.commandSymbol(index) === 'toTitle') {
		return;
	} else {
		return result;
	}
};

const _Window_Options_processOk = Window_Options.prototype.processOk;
Window_Options.prototype.processOk = function() {
	_Window_Options_processOk.call(this);
	this.callOkHandler();
};

})();

Re: オプションからゲーム終了(タイトルに戻る)をするには?

Posted: 2021年7月02日(金) 10:13
by rpgcode
WTRさん

使ってみたところ、動作しました。
どうもありがとうございました!