Browse Source

Alternate building animation - even/odd heights grow/shrink opposite

master
HikeMap User 4 weeks ago
parent
commit
55c2e6bcbb
  1. 16
      index.html

16
index.html

@ -5337,16 +5337,22 @@
function animateBuildings(timestamp) { function animateBuildings(timestamp) {
if (!buildingAnimationEnabled) return; if (!buildingAnimationEnabled) return;
// Single multiplier for all buildings: 100% to 150%
// (sin + 1) gives 0 to 2, multiply by 0.25 gives 0 to 0.5, add 1 gives 1.0 to 1.5
const multiplier = 1 + (Math.sin(timestamp * buildingAnimationSpeed) + 1) * 0.25;
// Two multipliers 180° out of phase: when one grows, the other shrinks
// Range: 100% to 150%
const sinVal = Math.sin(timestamp * buildingAnimationSpeed);
const multiplierA = 1 + (sinVal + 1) * 0.25; // 1.0 → 1.5
const multiplierB = 1 + (-sinVal + 1) * 0.25; // 1.5 → 1.0 (inverted)
// Update building height
// Alternate based on floor of height being even/odd
if (map.getLayer('buildings-3d')) { if (map.getLayer('buildings-3d')) {
map.setPaintProperty('buildings-3d', 'fill-extrusion-height', [ map.setPaintProperty('buildings-3d', 'fill-extrusion-height', [
'*', '*',
['get', 'render_height'], ['get', 'render_height'],
multiplier
['case',
['==', ['%', ['floor', ['get', 'render_height']], 2], 0],
multiplierA,
multiplierB
]
]); ]);
} }

Loading…
Cancel
Save