From 2b192b65aa44d9c8d85c630e826da27fcfa0a253 Mon Sep 17 00:00:00 2001 From: JOJO <1498581755@qq.com> Date: Thu, 6 Aug 2026 16:46:14 +0800 Subject: [PATCH] =?UTF-8?q?Boss=E9=80=9A=E7=94=A8=E7=A7=BB=E5=8A=A8?= =?UTF-8?q?=E6=8F=90=E5=89=8D=E6=8D=A2=E5=90=91=E6=B6=88=E9=99=A4=E7=AB=AF?= =?UTF-8?q?=E7=82=B9=E5=81=9C=E9=A1=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 原到达判定|dx|<1导致减速到接近0再重启=视觉顿挫 - 改为剩8px即换向:速度连续反向过渡不过零停顿,过冲由边界内缩6px吸收 - 模拟:低速连帧从20~40降到3~5,0越界,中线规则保持 --- star-raid/js/enemies.js | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/star-raid/js/enemies.js b/star-raid/js/enemies.js index fd3eca0..8aae376 100644 --- a/star-raid/js/enemies.js +++ b/star-raid/js/enemies.js @@ -315,20 +315,19 @@ function updateBoss(){ else if(b.idx===6){const usp=b.phase>=1?0.028:0.008,amp=b.phase>=1?70:44; b.x=clamp(b.x+amp*usp*Math.cos(b.mt*usp),30,W-30); // 速度积分定位:换阶段参数突变也不瞬移 b.yA=(b.yA||8)+((b.phase>=1?12:8)-(b.yA||8))*0.05;b.y=b.ty+Math.sin(b.mt*0.011)*b.yA;} // 夺权者X:P1巨大笨重→P2紧凑灵活 - else{ // 通用游走:中线分界——左侧只向右/右侧只向左,目标始终在中线另一侧;速度积分带加速度与惯性;边界防撞 + else{ // 通用游走:中线分界——左侧只向右/右侧只向左,目标始终在中线另一侧;速度积分带加速度与惯性;提前换向消除端点停顿 const r0=(def.rr&&def.rr[0])||def.r||20,mgn=12+(def.wide?6:0); - const minX=mgn+r0,maxX=W-mgn-r0; + const minX=mgn+r0+6,maxX=W-mgn-r0-6; // 内缩6px:为换向过冲留余量 if(typeof b.tx!=="number"){b.vx=0;const L=def.wide?rndi(35,80):rndi(50,105);b.tx=clamp(b.x0&&b.x>b.tx)||(dx<0&&b.x