From fc33de3879ef8a5d56b32cef1bb04379ddb71594 Mon Sep 17 00:00:00 2001 From: JOJO <1498581755@qq.com> Date: Thu, 6 Aug 2026 14:52:23 +0800 Subject: [PATCH] =?UTF-8?q?=E9=92=A2=E7=90=B4Boss=EF=BC=9A=E5=A4=A7?= =?UTF-8?q?=E6=BF=80=E5=85=89=E5=8A=A0=E5=8D=8A=E5=9C=86+=E5=A4=A7?= =?UTF-8?q?=E7=82=AE=E5=A1=94=E6=94=B9=E7=BA=A2+=E5=81=9C=E6=8E=89pedal?= =?UTF-8?q?=E5=B0=8F=E5=AD=90=E5=BC=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 大激光矩形上边加向上凸起的半圆(arc Math.PI→0),直径=激光宽度,像枪口扩口 - 左右大炮塔外观全改红色(装甲#5a1a1a/#8a2a2a,指示灯#ff3355) - 从钢琴minors去掉pedal,大炮塔不再发射小攻击子弹,只保留大激光惩罚+topRain --- star-raid/js/boss_art.js | 4 ++-- star-raid/js/enemies.js | 2 +- star-raid/js/render.js | 10 +++++----- 3 files changed, 8 insertions(+), 8 deletions(-) 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);