ゲームオーバーMEの変更

hogehoge

ゲームオーバー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
とエラーが出てしまいます。
どこが間違っているのか教えていただけると幸いです。

アバター
しぐれん
記事: 972
登録日時: 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);
};
現在、プラグイン依頼はお休み中です。
アバター
剣崎 宗二
記事: 678
登録日時: 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}


と、既に存在している変数部分を変更するのが宜しいかと考えます。
----
-出先に居る場合回答が未テスト状態である事が多い為、テストは重々にお願いいたします。
-基本自分や友人の問題解決は自分で1からプラグインを書いているので、「こういうプラグインはありますか」に対しては助けになれません。ご了承ください。
hogehoge

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

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

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

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

“MV:質問” へ戻る