スプライトの幅を、HPと連動させることによって作ります。
まず、パワーメーターを設置します。
// (1)パワーメーター var pMeter = new ExSprite(310, 10); pMeter.x = 5; pMeter.y = 5; pMeter.backgroundColor = "lightgreen"; scene.addChild(pMeter); pMeter.originX = 0;
ボスのHPの初期値は10とします。
boss.hp = 10;
ボスのHPが1減るごとに、パワーメーターの幅が10分の1ずつ減るようにするには、パワーメータの幅を、boss.hpの値の10分の1の値の倍率にします。
(考え方:HPが10→9になったら、パワーメーターの幅を10分の9(9割)の幅、8になったら8割の幅、7なら7割の幅‥(以下同様)なので、パワーメーターの幅を、HPの10分の1のスケールの倍率にすればよい)
// 判定 function judge(){ ・・・ // (2)パワーメーターの幅を計算 pMeter.scaleX = boss.hp / 10; }
さらに、このままではHPに制限がなく、パワーメーターも無限に伸びてしまうので、boss.hpに制限をかけるには、当たり判定のところで、以下のようにします。(0以上10以下の範囲で制限)
// 当たり判定 boss.addEventListener(Event.COLLISION, function(e){ // ボスにヒット boss.hp += e.collision.target.power; if(boss.hp < 0){ boss.hp = 0; } if(boss.hp > 10){ boss.hp = 10; } // 弾を消す e.collision.target.remove(); });