Lamentablemente, no puedo poner todo el código en esta ventana, pero aquí está el enlace al proyecto: https://editor.p5js.org/thing1/sketches/KIsvdFvPt
Puede duplicarlo para editarlo y mirar todos los archivos si así lo desea. Lamento que esta sea una pregunta tan vaga, pero trabajé mucho en este programa y ahora siento que todo ha sido en vano. Cualquier ayuda es apreciada :) Realmente aprecio cualquier ayuda que pueda proporcionar. ¡Muchas gracias!
En primer lugar, como se menciona en los comentarios, está eliminando de una matriz mientras la itera. Esto a menudo se necesita en el desarrollo de juegos y la práctica común es iterar a través de la matriz hacia atrás:
for (let i = comets.length - 1; i >= 0; i--) { // do your removing } Sin embargo, esto es sólo una parte del problema. La razón por la que su boceto se congela es porque tiene el siguiente código en su clase Comet :
polygon(this.x,this.y,this.health*2,this.health/5) Entonces, está configurando el radius y los npoints del polígono en valores que dependen de la salud del asteroide, ¡puede imaginar por qué no le gusta cuando se establece un valor negativo!
Envuelva este código en un simple si:
if (this.health > 0) { polygon(this.x, this.y, this.health*2, this.health/5) }