diff --git a/star-raid/js/boss_art.js b/star-raid/js/boss_art.js index f98dc53..aa3cea9 100644 --- a/star-raid/js/boss_art.js +++ b/star-raid/js/boss_art.js @@ -42,9 +42,9 @@ function drawPiano(b,t,fl,split){ // —— 左右大炮塔(踏板重音炮位;左紫右蓝;P2随最外环带滑开16) —— {const off0=split*16; 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"); + circ(px2,2,5.5,"#5a1a1a");circ(px2-1.5,0,2.5,"#8a2a2a"); 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,"#ff3355"); // 大激光蓄力前摇:画在炮塔口下方的蓄力圆(与小激光琴键蓄力圆同源,换色赤红) const prog=sd<0?((b.pedLasL||0)/60):((b.pedLasR||0)/60); if(prog>0){const a=Math.min(prog,1); diff --git a/star-raid/js/enemies.js b/star-raid/js/enemies.js index d8ac5bd..cc226ef 100644 --- a/star-raid/js/enemies.js +++ b/star-raid/js/enemies.js @@ -194,7 +194,7 @@ const BOSSES=[ {name:"太空原种",sub:"SPACE SPAWN",hp:1350,col:"#ff8fc8",r:20,rr:[20,34],ryy:[26,18],wide:1,main:"spawn",minors:["wiggle","spikeSnipe","sporeArc","tentBeam","mawSnipe","wingRain"],phases:2,tier:1}, {name:"歼灭者",sub:"ANNIHILATOR",hp:1700,col:"#b05ce8",r:22,main:"annihilate",minors:["aimSpread","spawnMine"],phases:3,tier:0}, {name:"暗黑突击",sub:"DARK ASSAULT",hp:2100,col:"#ff3355",r:9,rr:[9,10,11],ryy:[5,6,7],main:"assault",minors:["rain","aimSpread"],phases:3,tier:2}, - {name:"激光钢琴",sub:"LASER PIANO",hp:5000,col:"#43e8ff",r:26,rr:[100,100],ryy:[30,30],main:"piano",minors:["topRain","pedal"],phases:2,static:1,tier:1}, + {name:"激光钢琴",sub:"LASER PIANO",hp:5000,col:"#43e8ff",r:26,rr:[100,100],ryy:[30,30],main:"piano",minors:["topRain"],phases:2,static:1,tier:1}, {name:"母巢核心",sub:"HIVE CORE",hp:2800,col:"#ff9a3d",r:22,main:"hive",minors:["spawnMini","aimSpread","ring"],phases:3,tier:0}, {name:"夺权者X",sub:"USURPER X",hp:3700,col:"#e8f4ff",r:24,rr:[58,26],ryy:[34,40],wide:1,main:"usurper",minors:["deckVolley","pillar","aimSpread"],phases:2,tier:2}, {name:"暗黑魔碟",sub:"DARK SAUCER",hp:4500,col:"#8a5cff",r:24,rr:[30,32,34],main:"saucer",minors:["coneFan","crossEye","dartSpiral"],phases:3,tier:3}, // 间歇期无圆圈弹幕(去ringBig,P3主攻击仍两层) diff --git a/star-raid/js/render.js b/star-raid/js/render.js index 454552a..f8c1b64 100644 --- a/star-raid/js/render.js +++ b/star-raid/js/render.js @@ -224,12 +224,12 @@ function drawBossFx(){ ctx.beginPath();ctx.moveTo(bm.x1,bm.y1);ctx.lineTo(bm.x2,bm.y2);ctx.stroke();ctx.globalAlpha=1;}} else{ctx.globalCompositeOperation="lighter"; ctx.globalAlpha=clamp(bm.life/10,0,1)*0.85; - // 大激光起点扩口半圆(发射时较小然后扩大) - if(bm.dmg>=90000){const pR=Math.min(bm.w*0.7,bm.w*0.6*(1-bm.life/(bm.dur0||1))); - if(pR>0.5){ctx.fillStyle=bm.col; - ctx.beginPath();ctx.arc(bm.x1,bm.y1,pR,0,Math.PI);ctx.fill(); + // 大激光起点扩口半圆(直径=激光宽度,半圆顶部向上凸起覆盖矩形上边) + if(bm.dmg>=90000){const pR=Math.min(bm.w*0.5,bm.w*0.5*(1-bm.life/(bm.dur0||1))+1); + if(pR>1){ctx.fillStyle=bm.col; + ctx.beginPath();ctx.arc(bm.x1,bm.y1,pR,Math.PI,0);ctx.fill(); ctx.strokeStyle="#fff";ctx.lineWidth=Math.max(1,pR/3); - ctx.beginPath();ctx.arc(bm.x1,bm.y1,pR,0,Math.PI);ctx.stroke();}} + ctx.beginPath();ctx.arc(bm.x1,bm.y1,pR,Math.PI,0);ctx.stroke();}} ctx.strokeStyle=bm.col;ctx.lineWidth=bm.w; ctx.beginPath();ctx.moveTo(bm.x1,bm.y1);ctx.lineTo(bm.x2,bm.y2);ctx.stroke(); ctx.strokeStyle="#fff";ctx.lineWidth=Math.max(1,bm.w/3);