¡Hola Katherine! ¿cómo estás?
La situación que estás enfrentando se debe a un error de lógica en el código. En particular, cuando el objeto alcanza la posición de 600 píxeles, el código hace que el objeto vuelva hacia atrás. Sin embargo, cuando el objeto alcanza la posición de 599 píxeles, la primera condición definida en el código se activa y se le suma 1 píxel, lo que provoca que el objeto se quede atrapado en un bucle infinito de subir y bajar 1 píxel. Para solucionar este problema, es necesario ajustar las condiciones en el código de manera que el objeto no quede atrapado en este ciclo sin fin.
Una solución efectiva para solucionar el problema es mediante el uso de una variable de "sentido" o "dirección". Esta variable puede tomar un valor positivo para indicar que el objeto debe moverse hacia adelante, y un valor negativo para indicar que debe moverse hacia atrás. De esta manera, podemos evitar que el objeto se quede atrapado en un bucle infinito. Al utilizar la variable de sentido, podemos asegurarnos de que el objeto siempre se mueva en la dirección correcta y evite los errores de lógica que pueden provocar un comportamiento inesperado en el código.
Además de utilizar la variable de sentido, también es importante crear dos condiciones adicionales en el código. La primera condición debe verificarse cuando el valor de la posición x del objeto sea menor que 0, lo que significa que el objeto se está saliendo de la pantalla hacia la izquierda. La segunda condición se activa cuando la posición x del objeto es mayor que 600, lo que indica que el objeto está superando el límite establecido para avanzar hacia la derecha. Al verificar estas dos condiciones, podemos asegurarnos de que el objeto siempre permanezca dentro de los límites de la pantalla y que no se mueva más allá de los puntos establecidos en el código.
var x=0;
var sentido = 1;
function actualizarPantalla(){
limpiarPatalla() ;
if (x < 0){
sentido = 1;
} else if(x > 600){
sentido = -1;
}
disenharCircunferencia(x,20,10);
x += sentido;
}
setInterval(actualizarPantalla,10);
¡Saludos!
Si este post te ayudó, por favor marca como solucionado ✓. ¡Continúa con tus estudios!