完全独学だと仕方が無いと思いますけど色々と手直ししたいところが多いですね…
まず変更が反映されない理由は明白で
コード: 全て選択
Player_Info.prototype.drawActorHp = function(actor, x, y, width) {
width = width || 186;
var color1 = this.hpGaugeColor1();
var color2 = this.hpGaugeColor2();
this.drawGauge(x, y, width, actor.hpRate(), color1, color2);
//this.changeTextColor(this.systemColor());
//this.drawText(TextManager.hpA, x, y, 44);
this.drawCurrentAndMax(actor.hp, actor.mhp, x, y, width,
this.hpColor(actor), this.normalColor());
};
function Player_Info() {
this.initialize.apply(this, arguments);
}
Player_Info.prototype = Object.create(Window_Base.prototype);
Player_Info.prototype.constructor = Player_Info;
Player_Info.prototype.initialize = function() {
var x = 0;
var y = 0;
var width = 200;
var height = 100;
Window_Base.prototype.initialize.call(this, x, y, width, height);
};
Player_Infoを定義する前にdrawActorHpをオーバーライドしているからです。
コンストラクタ(Player_Info.prototype.initialize)の定義の下に位置を入れ替えるだけで解決します。
で、それとは別に構造的な問題が大別して2種類抱えています。
一つはインデント(字下げ)に関する問題。
プログラマはインデントに関して偏執的なまでに拘ります。
javascriptならば{}で囲った内側を半角スペース4文字分下げる、で徹底していて
例外的な事情がない限りこの法則を無意味に崩す事はありません。
これは法則性を遵守する事で可読性、ひいては保守性を向上させる事が目的です。
特に
コード: 全て選択
var _Scene_Battle_create = Scene_Battle.prototype.create;
ここで全角スペースで字下げしていますけど、これは特にバグの温床になり易く忌避されます。
VSCode等コーディング専用のテキストエディタを使用する事で回避出来ると思うので導入した方が良いでしょう。
もう一つは命名規則に関する問題です。
これは海外プログラマと日本のプログラマとでも重要視するか否か意識に差があるんですけど
ツクールMVのコアスクリプトでは変数名、関数名、クラス名等は一定の法則に基づいて命名されていて
特に日本のプラグイン作者もその命名規則に従う傾向にあります。
これも法則性を遵守する事で意図を読み解きやすく、バグ発見効率を上げる可読性・保守性に直結する為です。
まず変数名、関数名を付ける場合はキャメルケースという命名規則に則っています。
名前が英単語一つで収まる場合は全て小文字、
2単語以上連続する場合は2単語目から頭文字を大文字にする、という規則です。
更に変数の中でもメンバ変数と呼ばれるものには先頭に_を付けます。
コード: 全て選択
this._My_Window = new Player_Info();
このthis._My_Windowと言う変数も既存の命名規則に従うならthis._myWindowという名前になります。
他にもクラス名なら全ての単語の先頭文字を大文字にするパスカルケース
定数なら全ての文字を大文字にするコンスタントケース、グローバル変数を作る場合は先頭に$を入れる等
色々とルールがあるのですが今全てを理解するのは難しいと思います。
みんなこの辺にも気を遣っているという事だけ意識して可能なら真似てください。
それと揚げ足取りをする訳ではないのですが、ファイル名のHPGage_test.jsは正しくはGaugeです。
こういうスペルミスも混同して使用して後々バグの温床になるのが定番なので気付いたら直した方が良いでしょう。
他にも細かいところはあるんですけど更に専門的な話になるので割愛します。
とりあえずPlayer_Info.prototype.drawActorHpの位置を入れ替えて
今後、インデントと命名規則に気を遣ってコーディングした方が良いでしょう。