ゲームオーバーMEの変更

hogehoge
記事: 63
登録日時: 2016年7月29日(金) 21:28

ゲームオーバーMEの変更

投稿記事by hogehoge » 2018年2月21日(水) 23:54

演出としてゲームオーバー時のME変更を取り入れたく、現在スクリプトを使って挑戦しているのですがうまくいきません。

コード: 全て選択

$dataSystem.setGameoverMe({"name":"Inn","volume":90,"pitch":100,"pan":0})

見様見真似で上記のスクリプトで変更しようとしたのですが、
$dataSystem.setGameoverMe is not a function
とエラーが出てしまいます。
どこが間違っているのか教えていただけると幸いです。

アバター
しぐれん
記事: 595
登録日時: 2017年3月28日(火) 22:22
連絡を取る:

Re: ゲームオーバーMEの変更

投稿記事by しぐれん » 2018年2月22日(木) 00:14

$dataSystemはクラスではなくただのデータなので、メソッドがありません。

ここを改造すれば動くはずです。

コード: 全て選択

Scene_Gameover.prototype.playGameoverMusic = function() {
    AudioManager.stopBgm();
    AudioManager.stopBgs();
    AudioManager.playMe($dataSystem.gameoverMe);
};
有償でプラグイン作成リクエストに対応しています。
ご興味のある方は、こちらのリンクからどうぞ。
ツクールMV・プラグイン作成依頼受付
アバター
剣崎 宗二
記事: 171
登録日時: 2016年11月12日(土) 20:36
連絡を取る:

Re: ゲームオーバーMEの変更

投稿記事by 剣崎 宗二 » 2018年2月22日(木) 00:28

しぐれんさんの物に追加解説です。

根本的な話ですが、プログラムの仕組みとしてmethod(後ろに括弧がついている。要はコモンイベントの様に、コマンドの集合体)はvariable(ツクールの変数と同様の物)と区別されており、methodは事前に定義されていないと呼べません。でないと、ツクールで言えば「存在しないコモンイベントを呼び出している」ような状態になります。

例えば

コード: 全て選択

$gameSystem.onBattleStart();

と言うコマンドが使えるのは、

コード: 全て選択

Game_System.prototype.onBattleStart = function() {
    this._battleCount++;
};

と言う「定義」がrpg_objects.jsの内部にあるからです。

そして、setGameoverMeと言うmethodは私が調べる限りデフォルトのコードのどこにも定義されておりません。
何かしらのプラグインからコピーしてきたというのであれば、その「定義部分」も一緒に持ってこなければいけませんし、そうでないのであれば

コード: 全て選択

$dataSystem.gameoverMe = {"name":"Inn","volume":90,"pitch":100,"pan":0}


と、既に存在している変数部分を変更するのが宜しいかと考えます。
hogehoge
記事: 63
登録日時: 2016年7月29日(金) 21:28

Re: ゲームオーバーMEの変更

投稿記事by hogehoge » 2018年2月22日(木) 11:33

お二方ともありがとうございます!
根本的なところでミスをしていたのですね…

無事ME変更する事ができました!ありがとうございます!

“MV:質問” へ戻る