Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
1
respuesta

hola muchachos buenas tardes , no encuentro el error en mi codigo

hola muchachos a cabo de hacer el desafio pero todo compila bien, pero a la hora de cambiar los colores con el click derecho del mouse no pasa nada ya he mirado varias veces mi codigo con el codigo del profe pero no encuentro el error ya he mirado varias veces la funcion el condicional if y no nada , alguien que me pueda ayudar en que estoy mal,gracias, estere atento

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

<script>

     var pantalla = document.querySelector("canvas");
     var pincel = pantalla.getContext("2d");
     pincel.fillStyle = "green";
     pincel.fillRect(0, 0, 600, 400);
     var colores =["blue","red", "green"];
     var colorPrincipal= 0;


       function dibujarCirculo(event){
        var x = event.pageX - pantalla.offsetLeft;
        var y = event.pageY - pantalla.offsetTop ;

        pincel.fillStyle = "blue";
        pincel.beginPath();
        pincel.arc(x , y,10,0,2*3.1416)
        pincel.fill();
       console.log( x + ","+ y );

    }

    pantalla.onclick = dibujarCirculo;

     function alterarColor() {
         colorPrincipal++;
         if(colorPrincipal >= colores.length){
                 colorPrincipal = 0 ; //devolviendose al color blue cuando alcanze su mayo color 
       }
         return false;
      }

          pantalla.oncontextmenu = alterarColor;


</script>
1 respuesta
solución!

Hola Cristian,

Tu problema es que en la línea 17 volvías a configurar el color del pincel a azul:

function dibujarCirculo(event) {
        var x = event.pageX - pantalla.offsetLeft;
        var y = event.pageY - pantalla.offsetTop;

        **pincel.fillStyle = "blue"; // color de relleno, en este caso siempre será azul**
        pincel.beginPath();
        pincel.arc(x, y, 10, 0, 2 * 3.1416)
        pincel.fill();
        console.log(x + "," + y);

    }

Lo correcto es pasarle el arreglo junto con la variable 'colorPrincipal' para el recorrido del índice del color:

function dibujarCirculo(event) {
        var x = event.pageX - pantalla.offsetLeft;
        var y = event.pageY - pantalla.offsetTop;

        pincel.fillStyle = colores[colorPrincipal];
        pincel.beginPath();
        pincel.arc(x, y, 10, 0, 2 * 3.1416)
        pincel.fill();
        console.log(x + "," + y);

    }

Como observación el último color no se te verá ya que tu canvas es verde.

Espero haberte ayudado, saludos!