マップにいる全員に提案を行い、承諾、もしくは拒否したアクターごとにメッセージを生成し、表示したいのですが
$gameMessageがらみのメンバ関数の動きがよくわかりません。
RPGツクールMVのコア.jsと有志が作っているリファレンスは見たのですが・・・。
以下ソース。
下記関数はガンパレードマーチ風の提案コマンドを実施した際に、アクターごとに承諾、拒否メッセージを各々別ウィンドウで表示する事が目的。
使いまわすために関数化。
----------------------------------------------------------------------------------------------------------
function fn_speak_Accept(actor_number,flagOKorNG) {
var note = $dataActors[actor_number].note; //アクターのメモ欄 自称、承諾テキスト、拒否テキスト
var text = note.split(','); //カンマで切り分け
var name = text[0] //アクターの名前
var ok = text[1]; //アクターが承諾した際の個別のテキスト
var ng = text[2]; //アクターが拒否した際の個別のテキスト
//falgOKorNGは承諾したか、拒否したかのフラグが入っている。
if (flagOKorNG === 'OK') {
//メッセージウィンドウ
$gameMessage.newPage();
$gameMessage.setFaceImage($dataActors[actor_number].name, 0);
$gameMessage.add(ok);
} else if (flagOKorNG === 'NG') {
//メッセージウィンドウ
$gameMessage.newPage();
$gameMessage.setFaceImage($dataActors[actor_number].name, 0);
$gameMessage.add(ng);
}
}
----------------------------------------------------------------------------------------------------------
グローバル変数$gameMessageのnewPage()で新規ページ?
setFaceImage()でイメージ指定、これは理解。
add(text)でテキストを表示?
これを実行すると最初のアクターのテキストは表示されるが、顔イメージが全て最後のアクターのものになってしまう。
newPage()で新規ページは作れているので、add()の後にメッセージウィンドウを手動で出力する関数があるものと考えるのですが、調べても見当たりませんでした。
$gameMessageがグローバル変数なので、単純にイメージが上書きされて、その後テキストウィンドウ処理されているだけなのでしょうか?
その場合、どの段階でsetFaceImage()を実行するべきでしょうか?
煮詰まってしまって、よくわからない質問になってしまってすみません;
とりあえず、単純に「文章」を2つ連続で、イベントで記述するような状態にしたいです。
$gameMessageがらみのメンバ関数の動きがよくわかりません。
Re: $gameMessageがらみのメンバ関数の動きがよくわかりません。
rpg_objects.jsを「Show Text」で検索すると、
Game_Interpreter.prototype.command101という関数が見つかると思います。
それがイベントコマンド「文章の表示...」の中身ですので、そこから紐解いてみてはどうでしょう?
Game_Interpreter.prototype.command101という関数が見つかると思います。
それがイベントコマンド「文章の表示...」の中身ですので、そこから紐解いてみてはどうでしょう?
Re: $gameMessageがらみのメンバ関数の動きがよくわかりません。
レスありがとうございます。
一日かけてわかったことは
1・command101関数をオーバーロードし、自分の使いたいように追加定義する?
2・オブジェクトを作って、オーバーロードしたcommand101を呼び出す?
ぐらいなのですが、もう少しヒントいただけないでしょうか?
一日かけてわかったことは
1・command101関数をオーバーロードし、自分の使いたいように追加定義する?
2・オブジェクトを作って、オーバーロードしたcommand101を呼び出す?
ぐらいなのですが、もう少しヒントいただけないでしょうか?