钢琴Boss大激光:去掉上下限制+增加蓄力前摇动画
- 大激光判断:只检测水平位置(|p.x-炮塔x|<14),不再限制p.y范围 - 蓄力动画:炮塔口红光脉冲(半径2→7随进度扩大)+向下红色蓄力线(长度0→55随进度蔓延) - 蓄力线使用ctx.globalAlpha控制透明度,蓄力过半后明显可见
This commit is contained in:
parent
07e69c17ef
commit
90c31ba38d
@ -44,7 +44,15 @@ function drawPiano(b,t,fl,split){
|
||||
for(const sd of[-1,1]){const px2=sd*(112+off0);
|
||||
circ(px2,2,5.5,"#33436a");circ(px2-1.5,0,2.5,"#55648a");
|
||||
px(px2-1.5,4,3,8,"#1b2434");
|
||||
px(px2-1,10,2,3,b.pedT>0?"#ffffff":(sd<0?"#b98cff":"#43e8ff"));}}
|
||||
px(px2-1,10,2,3,b.pedT>0?"#ffffff":(sd<0?"#b98cff":"#43e8ff"));
|
||||
// 大激光蓄力动画(1秒前摇:红光脉冲+向下蔓延蓄力线)
|
||||
const prog=sd<0?((b.pedLasL||0)/60):((b.pedLasR||0)/60);
|
||||
if(prog>0){const a=Math.min(prog,1);
|
||||
ctx.save();ctx.globalAlpha=Math.min(a*0.6,0.85);
|
||||
circ(px2,10,2+a*5,"#ff3355"); // 炮塔口红光脉冲,随蓄力扩大
|
||||
const len=Math.floor(a*55);
|
||||
if(len>1){px(px2-0.5,12,1,len,"#ff3355");} // 向下蓄力线(纹路蔓延)
|
||||
ctx.restore();}}}
|
||||
// —— 舰桥+雷达(随半壳滑开) ——
|
||||
for(const sd of[-1,1]){ctx.save();ctx.translate(sd*split*30,0);
|
||||
px(sd<0?-10:0,-32,10,10,"#1b2434");
|
||||
|
||||
@ -350,15 +350,15 @@ function updateBoss(){
|
||||
}
|
||||
}
|
||||
const lck=(b.laserT||0)>0; // 巨宽核心激光期间压制其他攻击
|
||||
// 钢琴:大炮塔惩罚激光——玩家站在炮塔正下方蓄力1秒后发射99999伤害大激光
|
||||
// 钢琴:大炮塔惩罚激光——玩家站在炮塔水平正下方蓄力1秒后发射99999伤害大激光(不管上下远近,只管左右)
|
||||
if(b.idx===4&&!lck){
|
||||
const off0=b.phase>=1?16:0,p=G.p;
|
||||
const leftX=b.x-(112+off0),rightX=b.x+(112+off0);
|
||||
if(p.dead<=0&&Math.abs(p.x-leftX)<14&&p.y>b.y&&p.y<b.y+130){
|
||||
if(p.dead<=0&&Math.abs(p.x-leftX)<14){
|
||||
b.pedLasL=(b.pedLasL||0)+1;
|
||||
if(b.pedLasL>=60){bossBeam(leftX,b.y+10,leftX,H+8,6,"#ff3355",10,40,99999,{b,ox:-(112+off0),oy:10,followX2:true});b.pedLasL=0;SFX.warn();}
|
||||
}else b.pedLasL=0;
|
||||
if(p.dead<=0&&Math.abs(p.x-rightX)<14&&p.y>b.y&&p.y<b.y+130){
|
||||
if(p.dead<=0&&Math.abs(p.x-rightX)<14){
|
||||
b.pedLasR=(b.pedLasR||0)+1;
|
||||
if(b.pedLasR>=60){bossBeam(rightX,b.y+10,rightX,H+8,6,"#ff3355",10,40,99999,{b,ox:(112+off0),oy:10,followX2:true});b.pedLasR=0;SFX.warn();}
|
||||
}else b.pedLasR=0;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user