Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
5
respuestas

[Duda] porque no cambia de posición aleatoria y no se ven los tres colores

<canvas width="600" height="400"> </canvas>
<script>
    var pantalla = document.querySelector("canvas");
    var pincel = pantalla.getContext("2d");        
    pincel.fillStyle = "lightgrey";
    pincel.fillRect(0,0,600,400); 
    var radio = 10;

    function disenharCircunferencia(x,y,radio,color){
        pincel.fillStyle = color;
        pincel.beginPath();
        pincel.arc(x,y,radio,0,2*Math.PI);
        pincel.fill();
    }    

    function limpiarPantalla(){
        pincel.clearRect(0,0,600,400);
    }

    var x = 0;
    var sentido = 1;

    function actualizarPantalla(color){
        limpiarPantalla();
        if(x > 600){
            sentido = -1;
        }else if(x < 0){
            sentido = 1;
        }
        disenharCircunferencia(x,20,10,color);

        x = x + sentido;
    }

    function disenharObjetivo(x,y){
        disenharCircunferencia(x,y,radio + 20,"red");
        disenharCircunferencia(x,y,radio + 10, "white");
        disenharCircunferencia(x,y,radio,"red");
    }

    setInterval(function() {
        xAleatoreo = sortearPosicion(600);
        yAleatoreo = sortearPosicion(400);
        disenharObjetivo(xAleatoreo,yAleatoreo);
        actualizarPantalla("red");
    }, 10);

    function sortearPosicion(maximo){
        return Math.floor(Math.random()*maximo);
    }
</script>
5 respuestas

Hola, estás usando el código de la tarea, se debe usar de base el código del programa 5 sin el cambio del vaivén de la circunferencia. Te copio el código hecho en clase para que lo compares y borres el código que tienes de más.

<canvas width="600" height="400"> </canvas>

<script>
    var pantalla = document.querySelector("canvas");
    var pincel = pantalla.getContext("2d");        
    pincel.fillStyle = "lightgrey";
    pincel.fillRect(0,0,600,400); 

    var radio = 10;

    function disenharCircunferencia(x,y,radio,color){
        pincel.fillStyle = color;
        pincel.beginPath();
        pincel.arc(x,y,radio,0,2*Math.PI);
        pincel.fill();
    }    

    function limpiarPantalla(){

        pincel.clearRect(0,0,600,400);

    }

    var x = 0

    function actualizarPantalla(){

        limpiarPantalla();
        disenharCircunferencia(x,20,10);
        x++;
    }

    function disenharObjetivo(x,y){

        disenharCircunferencia(x,y,radio + 20,"red");
        disenharCircunferencia(x,y,radio + 10,"white");    
        disenharCircunferencia(x,y,radio,"red");

    }

    function sortearPosicion (maximo){

        return Math.floor(Math.random()*maximo);


    }

    xAleatorio = sortearPosicion(600);
    yAleatorio = sortearPosicion(400);

    disenharObjetivo(xAleatorio,yAleatorio);



    //setInterval(actualizarPantalla,100);

</script> 

Hola, no se si hablamos del mismo ejercicio, en donde se debia ver los 3 colores: rojo, verde y azul y hacer dibujos, donde debe cambiar el color, el mio hace el dibujo aleatorio, pero no cambia de color, me parece que me toca crear otra función con click o algo para que llame el cambio de color....

<canvas width="600" height="400"></canvas>

Hola, probablemente no. Tu código reproduce el ejercicio ¡Ya que va, que vuelva! - dejo captura-. En ese ejercicio en particular no se debia cambiar el color.

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

No cambia de posición aleatoria y no se ven los tres colores por que la funcion actualizar pantalla borra todo. Igual si sacas esa parte del codigo y dejas lo demas que programaste se genera un efecto divertido. Saludos

<canvas width="600" height="400"> </canvas>
<script>
    var pantalla = document.querySelector("canvas");
    var pincel = pantalla.getContext("2d");        
    pincel.fillStyle = "lightgrey";
    pincel.fillRect(0,0,600,400); 
    var radio = 10;

    function disenharCircunferencia(x,y,radio,color){
        pincel.fillStyle = color;
        pincel.beginPath();
        pincel.arc(x,y,radio,0,2*Math.PI);
        pincel.fill();
    }    

    function disenharObjetivo(x,y){
        disenharCircunferencia(x,y,radio + 20,"red");
        disenharCircunferencia(x,y,radio + 10, "white");
        disenharCircunferencia(x,y,radio,"red");
    }

    setInterval(function() {
        xAleatoreo = sortearPosicion(600);
        yAleatoreo = sortearPosicion(400);
        disenharObjetivo(xAleatoreo,yAleatoreo);
        actualizarPantalla("red");
    }, 10);

    function sortearPosicion(maximo){
        return Math.floor(Math.random()*maximo);
    }
</script>

Gracias, voy a realizar los cambios para ver como queda mi codificación...