ただ、何時間格闘してもわからなかったり悩んだりしてしまうので、辛くなったりしないかと気にはなります。
とりもち さんが書きました:(まだ、argumentsなどが完全に理解できていません)
.apply(this, arguments)については、使用例はこちらに軽く書いてあります。
公式プラグインを読み解く
https://tkool.jp/mz/plugin/make/koushiki.html
コアスクリプトだと、.call(this, index)のようになっています。
コード: 全て選択
Window_BattleActor.prototype.select = function(index) {
Window_BattleStatus.prototype.select.call(this, index);
$gameParty.select(this.actor(index));
};
.call(this, rect)や.call(this)
というパターンもあり、function(index)で指定されている引数(indexの部分)を毎回指定しなければなりません。
.apply(this, arguments)だと、この個別の引数の指定が不要になって、argumentsだけで動作するようになります。
この引数の変更をミスるとバグるので、値を変更する必要がない場合、.apply(this, arguments)という書き方なら共通なので楽というだけです。
特にshowPictureメソッドのように、引数が多いものもあります。
コード: 全て選択
Game_Screen.prototype.showPicture = function(pictureId, name, origin, x, y, scaleX, scaleY, opacity, blendMode)
.call(this, pictureId, name, origin, x, y, scaleX, scaleY, opacity, blendMode)
.apply(this, arguments) //省略できるので便利
入門書にはプログラミング言語共通での命名規則が解説されていたりするのもあります。
処理を実行するのは動詞、isやhasなどで始めるとBoolean値(true/false)を判定するためのもの、複数形なら配列やオブジェクトを返すというような意味をもたせます。
そうすることで、関数名(メソッド名)だけで処理内容がある程度予測出来るようになります。
Scene_Battle.prototypeだと、onで始まるのはユーザのキー入力後、OkやCancelが含まれるときは決定かキャンセル、commandで始まるとアクターコマンド、などとざっくり把握しやすいです。