ページ 1 / 1
ゲームオーバーMEの変更
Posted: 2018年2月21日(水) 23:54
by hogehoge
演出としてゲームオーバー時のME変更を取り入れたく、現在スクリプトを使って挑戦しているのですがうまくいきません。
コード: 全て選択
$dataSystem.setGameoverMe({"name":"Inn","volume":90,"pitch":100,"pan":0})
見様見真似で上記のスクリプトで変更しようとしたのですが、
$dataSystem.setGameoverMe is not a function
とエラーが出てしまいます。
どこが間違っているのか教えていただけると幸いです。
Re: ゲームオーバーMEの変更
Posted: 2018年2月22日(木) 00:14
by しぐれん
$dataSystemはクラスではなくただのデータなので、メソッドがありません。
ここを改造すれば動くはずです。
コード: 全て選択
Scene_Gameover.prototype.playGameoverMusic = function() {
AudioManager.stopBgm();
AudioManager.stopBgs();
AudioManager.playMe($dataSystem.gameoverMe);
};
Re: ゲームオーバーMEの変更
Posted: 2018年2月22日(木) 00:28
by 剣崎 宗二
しぐれんさんの物に追加解説です。
根本的な話ですが、プログラムの仕組みとして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}
と、既に存在している変数部分を変更するのが宜しいかと考えます。
Re: ゲームオーバーMEの変更
Posted: 2018年2月22日(木) 11:33
by hogehoge
お二方ともありがとうございます!
根本的なところでミスをしていたのですね…
無事ME変更する事ができました!ありがとうございます!