Tengo una animación p5.js aquí que está destinada a animar la obra de arte y luego revertir la animación, sin embargo, aunque funciona para mis otras obras de arte, la lógica no funciona aquí ya que la declaración if no se activa debido a la resta de mi máscara solo ocurre una vez. En este momento solo funciona la animación, puede verla aquí: https://editor.p5js.org/theruantan/sketches/8g583LF8j
El problema principal comienza en la línea 116 y es en la línea 124 donde el código no puede llegar a esta declaración if.
//Start of reversal for masks for (let i = beachSwitches.length - 1; i >= 0; i--) { if (beachSwitches[i] == 0) { if (beachMasks[i] > 0) { beachMasks[i] -= 20; animating = true; //console.log("beachMasks"); console.log(beachMasks[i]) } if (beachMasks[i] <= 300) { // Begin reversing the next bar beachSwitches[i - 1] = 0; // To see if the code is able to reach here. console.log(beachSwitches[i - 1] + "This is triggered"); } } }beachMarks[i] debería poder ser <= 300 pero está atascado en 780.
Recientemente comencé a trabajar con p5.js pero solo basándome en leer el código y comprender lo que está tratando de hacer, lo que puedo ver está en la línea que mencionó, es decir, 116, si inicia sesión dentro y fuera, comprenderá por qué solo se está ejecutando una vez. Dentro de las 116 líneas for loop, está buscando beachSwitches[i]==0 , lo que solo ocurre una vez (en el último índice de esa matriz) porque beachSwitches se modifica arriba, y tampoco ha definido nada en la otra parte para esta condición. Que es lo que es beachSwtiches[i] == 0 is NOT TRUE . En mi captura de pantalla a continuación, puede obtener una idea aproximada. ¡Espero que esto ayude de alguna manera! ¡Salud! Captura de pantalla de los registros que tomé de la línea 116 a la 124