Game_Messageからフキダシアイコン表示を行う方法
Posted: 2022年10月16日(日) 17:04
ツクールMVにおける会話でデフォルトの「文章の表示」を使って
名前
「~」
と表示するのは億劫なので、以下の記事を参考にして、次のようなスクリプトを作りました。
https://note.com/asakayu/n/n5611ef004b23
これは、スクリプトで$gameMessage.show('会話内容', this)と打ち込むと、\v[19]に格納された名前を一行目に表示。二行目に「会話内容」と表示されます。
このshow関数を拡張して、フキダシアイコンの表示も可能なtalk関数を作成しようと思い、以下のコードを作りました。
'会話内容'の部分に'!びっくり'と打つと、フキダシアイコンのびっくりをウェイトモードで表示できるような仕様を想定しておりましたが、最後のif分に問題があるようで上手く関数が呼び出せません。
そこで、thisが何なのかを調べてみると、Game_Interpreterと置換しているようだったので、thisの部分をGame_Interpreterに変更しましたがGame_Message内では他クラスを呼び出せないのか、それも上手くいきません。別クラスのメソッドを呼び出すにはどうすればよいのでしょうか。
名前
「~」
と表示するのは億劫なので、以下の記事を参考にして、次のようなスクリプトを作りました。
https://note.com/asakayu/n/n5611ef004b23
コード: 全て選択
Game_Message.prototype.show = function (it, Message) {
let str = '「' + Message + '」';
$gameMessage.newPage()
$gameMessage.add($gameVariables.value(19))
$gameMessage.add(str)
it.setWaitMode('message')
};
このshow関数を拡張して、フキダシアイコンの表示も可能なtalk関数を作成しようと思い、以下のコードを作りました。
コード: 全て選択
Game_Message.prototype.talk = function (Message, it) {
let Fkind = 0;
switch (Message) {
case '!びっくり':
Fkind = 1;
break;
case '!はてな':
Fkind = 2;
break;
case '!音符':
Fkind = 3;
break;
case '!ハート':
Fkind = 4;
break;
case '!怒り':
Fkind = 5;
break;
case '!汗':
Fkind = 6;
break;
case '!くしゃくしゃ':
Fkind = 7;
break;
case '!沈黙':
Fkind = 8;
break;
case '!電球':
Fkind = 9;
break;
case '!zzz':
Fkind = 10;
break;
default:
let str = '「' + Message + '」';
$gameMessage.newPage()
$gameMessage.add($gameVariables.value(19))
$gameMessage.add(str)
it.setWaitMode('message')
}
if (Fkind != 0) {
this._character = this.character(-1);
if (this._character) {
this._character.requestBalloon(5);
this.setWaitMode('balloon');
}
}
}
そこで、thisが何なのかを調べてみると、Game_Interpreterと置換しているようだったので、thisの部分をGame_Interpreterに変更しましたがGame_Message内では他クラスを呼び出せないのか、それも上手くいきません。別クラスのメソッドを呼び出すにはどうすればよいのでしょうか。