Estoy tratando de usar kaboom.js por primera vez creando algunos rectángulos en movimiento, pero después de un tiempo el navegador dirá que javascript está ralentizando todo y lo bloquea. Supongo que esto se debe a que cuando existe un objeto, la pantalla no se elimina, pero no veo eso en otros scripts de Kaboom.
código
import kaboom from "https://unpkg.com/kaboom@next/dist/kaboom.mjs"; let w, h, direction; let speed = 20; let spawnSpeed = 3; let mode = 'x'; kaboom(); function addRect() { switch (mode) { case 'x': w = 40; h = rand(15, 25); mode = 'y'; direction = RIGHT; break case 'y': w = rand(15, 25); h = 40; mode = 'x'; direction = DOWN; break; } add([ rect(w, h), area(), outline(4), pos( rand(0, width()-width()/2), rand(0, height()-height()/2) ), origin("botleft"), color(rand(0,255), rand(0,255), rand(0,255)), move(direction, speed), ]); wait(spawnSpeed, addRect); speed += 10; if (spawnSpeed >= 1) { spawnSpeed -= 0.3; }; speed += 0.3; } addRect();Cuando ves que todo el sistema se ralentiza significa que seguramente hay una pérdida de memoria o una función recursiva llamándose a sí misma (al menos en javascript). El tiempo que pasa antes de que todo se congele depende de la cantidad de RAM que tengas disponible.
Como puede ver en la captura de pantalla, Kaboom ha llegado a consumir 6 GB de RAM (lo que provoca la ralentización de todo el sistema), esto se debe a que nunca elimina los rectángulos que agrega y, por lo que ha escrito en el código ( spawnSpeed ), también hazlo cada vez más rápido.
Consulte también la documentación y evite copiar y pegar otros scripts: https://kaboomjs.com/doc#destroy