あ
This commit is contained in:
parent
8f9f5b5100
commit
f1c3af2b89
49 changed files with 989 additions and 310 deletions
|
|
@ -119,17 +119,23 @@
|
|||
worldRef.limitBallChasers();
|
||||
worldRef.resolveBallInteractions(dt);
|
||||
if (endBallInteractions) endBallInteractions();
|
||||
const hasFastTarinai = (worldRef.tarinai || []).some(t => {
|
||||
if (!t || t.dead || worldRef.isTarinaiHiddenInNestBox?.(t)) return false;
|
||||
return Math.hypot(t.vx || 0, t.vy || 0) >= 150;
|
||||
});
|
||||
const collisionInterval = hasFastTarinai ? 0 : 0.55;
|
||||
if (hasFastTarinai || now >= (worldRef.nextTarinaiCollisionCheckAt || 0)) {
|
||||
worldRef.nextTarinaiCollisionCheckAt = now + collisionInterval;
|
||||
let fastTarinai = null;
|
||||
const collisionSpeedThreshold = global.TarinaiCollisionResponseSystem?.highSpeedThreshold?.() || 165;
|
||||
for (const t of worldRef.tarinai || []) {
|
||||
if (!t || t.dead || worldRef.isTarinaiHiddenInNestBox?.(t)) continue;
|
||||
if (Math.hypot(t.vx || 0, t.vy || 0) < collisionSpeedThreshold) continue;
|
||||
if (!fastTarinai) fastTarinai = [];
|
||||
fastTarinai.push(t);
|
||||
}
|
||||
if (fastTarinai?.length) {
|
||||
worldRef.nextTarinaiCollisionCheckAt = now;
|
||||
worldRef.workStats && (worldRef.workStats.collisionRuns = (worldRef.workStats.collisionRuns || 0) + 1);
|
||||
const endCollision = global.TarinaiPerf.begin("update.tarinai.collisions") || null;
|
||||
try { worldRef.resolveTarinaiHighSpeedCollisions(dt); }
|
||||
try { worldRef.resolveTarinaiHighSpeedCollisions(dt, { fastSources: fastTarinai, threshold: collisionSpeedThreshold }); }
|
||||
finally { if (endCollision) endCollision(); }
|
||||
} else if (now >= (worldRef.nextTarinaiCollisionCheckAt || 0)) {
|
||||
worldRef.nextTarinaiCollisionCheckAt = now + 0.55;
|
||||
worldRef.workStats && (worldRef.workStats.collisionSkips = (worldRef.workStats.collisionSkips || 0) + 1);
|
||||
} else {
|
||||
worldRef.workStats && (worldRef.workStats.collisionSkips = (worldRef.workStats.collisionSkips || 0) + 1);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue