原种衔接修正:身体加长至y18覆住尾根(尾巴先画压身下,不再分离);P1花弹/P2尾激光发射点精确对齐尾端生殖腔光点(oy=34/40)。仅语法检查通过,未运行验证
This commit is contained in:
parent
e33327809d
commit
1a7604a7d6
@ -356,10 +356,10 @@ function bossMain(b,def,fm){
|
||||
case "spawn": { // 太空原种:花弹从腹末生殖腔喷出(发射点=生殖腔摆动,与drawProgenitor同源公式);P1三波起手偏左 / P2生殖腔血光柱+翼尖花弹
|
||||
if(ph===0){const swx=Math.sin(b.t*0.055+2.8)*5.2;
|
||||
for(let k=0;k<3;k++)for(let i=-2;i<=2;i++){
|
||||
const bb=ebul(b.x+swx,b.y+30,a0+i*0.16+(k-1)*0.09+[0.2,0.1,0][k],1.5+k*0.2,"flowr",14);
|
||||
const bb=ebul(b.x+swx,b.y+34,a0+i*0.16+(k-1)*0.09+[0.2,0.1,0][k],1.5+k*0.2,"flowr",14);
|
||||
bb.grow=0.007;bb.maxS=2.8;bb.scale=0.9;}
|
||||
b.mainT=Math.round(84/fm);
|
||||
}else{bossBeam(b.x,b.y+30,b.x+clamp(ap2.x-b.x,-50,50)*0.5,H+10,9,"#ff5c8a",30,44,22,{b,ox:0,oy:30});
|
||||
}else{bossBeam(b.x,b.y+40,b.x+clamp(ap2.x-b.x,-50,50)*0.5,H+10,9,"#ff5c8a",30,44,22,{b,ox:0,oy:40});
|
||||
for(const sd of[-1,1])for(let i=0;i<3;i++){
|
||||
const bb=ebul(b.x+sd*50,b.y-2,Math.PI/2+sd*(0.35+i*0.2),1.6,"flowr",13);
|
||||
bb.grow=0.008;bb.maxS=3;bb.scale=0.9;}
|
||||
|
||||
@ -263,7 +263,7 @@ function drawBoss(){
|
||||
ctx.fillText(b.transT>0?b.name:(b.name+" "+Math.ceil(pc*100)+"%"),W/2,22);
|
||||
}
|
||||
/* ---- Boss 分体绘制助手 ---- */
|
||||
function drawProgenitor(b,t,fl,tf){ // 太空原种·装甲虫兽(tf 0=装甲态→1=血肉态):P1小翅芽→P2骨膜巨翼;无复眼(大颚+感器红缝=虫形压迫感);摆尾与躯体分离悬空
|
||||
function drawProgenitor(b,t,fl,tf){ // 太空原种·装甲虫兽(tf 0=装甲态→1=血肉态):P1小翅芽→P2骨膜巨翼;无复眼(大颚+感器红缝=虫形压迫感);摆尾衔接于躯体之下(尾根被加长的身体覆住,无缝)
|
||||
ctx.rotate(Math.sin(t*0.05)*0.04); // 悬停微摇
|
||||
const wS=0.22+0.78*tf; // 翼展:P1小翅芽→P2全展(同一对翼连续缩放)
|
||||
// —— 骨膜翼一对:3根骨刺撑起膜面(P1灰甲小翼→P2血红膜+暗红骨,同一几何体罩色) ——
|
||||
@ -278,7 +278,7 @@ function drawProgenitor(b,t,fl,tf){ // 太空原种·装甲虫兽(tf 0=装甲
|
||||
for(const tp of[[14,-15],[34,-15],[54,-9]])drawSeg(2,-2,tp[0],tp[1],2,"#7a1622",tf); // P2骨刺转暗红
|
||||
ctx.globalAlpha=1;}
|
||||
ctx.restore();}
|
||||
// —— 摆尾:与躯体分离悬空(9px空隙),5节逐节相位摆动;P2节间血红肉显露+整体伸长 ——
|
||||
// —— 摆尾:先画在躯体下层(尾根被加长的身体覆住,无缝衔接),5节逐节相位摆动;P2节间血红肉显露+整体伸长 ——
|
||||
const segH=5.2+tf*1.6,gap=11;
|
||||
for(let i=4;i>=0;i--){const sw=Math.sin(t*0.055+i*0.7)*(1.2+i),sy=gap+i*segH,hw=9-i*1.5;
|
||||
if(tf>0&&i<4){ctx.globalAlpha=tf*0.85;px(sw-hw+2,sy+segH-2,(hw-2)*2,2,"#c8202e");ctx.globalAlpha=1;} // 节间血肉环
|
||||
@ -291,13 +291,13 @@ function drawProgenitor(b,t,fl,tf){ // 太空原种·装甲虫兽(tf 0=装甲
|
||||
circ(swT,tipY+2,1.1,"#ffdfe5");
|
||||
// —— 壳下血肉(常存于背甲之下,滑开才见;血红,非粉) ——
|
||||
if(tf>0){ctx.globalAlpha=tf*0.9;
|
||||
poly([0,-36,9,-29,11,-14,7,0,0,3,-7,0,-11,-14,-9,-29],"#c8202e");
|
||||
px(-2,-30,4,26,"#e8393a");ctx.globalAlpha=1;}
|
||||
poly([0,-36,9,-29,11,-14,8,2,5,16,0,20,-5,16,-8,2,-11,-14,-9,-29],"#c8202e");
|
||||
px(-2,-30,4,46,"#e8393a");ctx.globalAlpha=1;}
|
||||
// —— 背甲两瓣:沿背脊中线裂开,P2向外滑开(同一多边形平移) ——
|
||||
for(const sd of[-1,1]){ctx.save();ctx.translate(sd*tf*7,0);
|
||||
poly([0,-40,sd*11,-37,sd*15,-28,sd*13,-12,sd*9,0,0,2],sd<0?"#c9d6e2":"#9fb0c2");
|
||||
poly([0,-40,sd*11,-37,sd*15,-28,sd*13,-12,sd*10,4,sd*6,14,0,18],sd<0?"#c9d6e2":"#9fb0c2");
|
||||
poly([0,-40,sd*11,-37,sd*15,-28,sd*7,-26,sd*5,-36],"#e8f0f6"); // 受光斜面
|
||||
for(let i=0;i<3;i++)px(sd*(4+i*3.4)-1,-24+i*8,2,5,"#5a6c80"); // 甲片板缝
|
||||
for(let i=0;i<4;i++)px(sd*(4+i*2.8)-1,-24+i*9,2,5,"#5a6c80"); // 甲片板缝
|
||||
const crk=Math.max(0,Math.min(1,(tf-0.15)/0.4))*10; // 裂纹随tf生长(延长,非新增)
|
||||
if(crk>0.5)px(sd*6-1,-18,2,crk,"#8a2a3a");
|
||||
ctx.restore();}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user