Solucionado (ver solución)
Solucionado
(ver solución)
1
respuesta

Dejo mi resolución. Se pueden agregar colores al array y funciona

Estuvo bueno el desafío. Lo que cambie fue que se le puede agregar un color al array y sigue funcionando con el color agregado.

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

<script>
    var pantalla = document.querySelector('canvas');
    var pincel = pantalla.getContext('2d');

    pincel.fillStyle = 'grey';
    pincel.fillRect(0, 0, 600, 400);

    var coloresPincel = ["red","green", "blue","yellow"] // array con colores
    var colorTamanoX; //tamaño x de los cuadrados
    var colorTamanoY;//tamaño y de los cuadrados
    var colorPincelElegido = "blue"; //comienza dibujando en azul

    var puedoDibujar = false;

    function dibujarCirculo(evento) {

        if (puedoDibujar) {
            var x = evento.pageX - pantalla.offsetLeft;
            var y = evento.pageY - pantalla.offsetTop;

            if ((x < colorTamanoX * coloresPincel.length) && (y < colorTamanoY)){
                //no dibuja sobre la paleta

            }else{
                //aca dibuja sobre la paleta
                pincel.fillStyle = colorPincelElegido;
                pincel.beginPath();
                pincel.arc(x, y, 5, 0, 2 * Math.PI);
                pincel.fill();
            }
        }
    }

    pantalla.onmousemove = dibujarCirculo;

    function habilitarDibujar() {

        puedoDibujar = true;
    }

    function deshabilitarDibujar() {

        puedoDibujar = false;
    }

    function dibujarRectangulos(x,y,xTamano,yTamano,colores){

        for(var z = 0; z < colores.length; z++){
            pincel.fillStyle = colores[z];
            pincel.fillRect(x,y,xTamano,yTamano)
            x = x + xTamano;

        }

    }

    //tamaño de los cuadrados
    colorTamanoX = 50;
    colorTamanoY = 50;

    //llamada a dibujar rectangulos
    dibujarRectangulos(0,0,colorTamanoX,colorTamanoY,coloresPincel);

    function elegirColores(evento){

        var x = evento.pageX - pantalla.offsetLeft;
        var y = evento.pageY - pantalla.offsetTop;

        var sumaTamanos = 0;


        for (var z = 0; z < coloresPincel.length; z++){


            if ((x > sumaTamanos) && (x < sumaTamanos + colorTamanoX ) && (y > 0) && (y < colorTamanoY)){

                colorPincelElegido = coloresPincel[z];
                break;

            }else{
                sumaTamanos = sumaTamanos + colorTamanoX;

            }

        }




    }

    pantalla.onclick = elegirColores;

    pantalla.onmousedown = habilitarDibujar;

    pantalla.onmouseup = deshabilitarDibujar;

</script>
1 respuesta
solución!

Hola Julian

Gracias por compartir tu código, está muy bien felicitaciones.

Si tienes alguna pregunta sobre el contenido de los cursos, estaremos aquí para ayudarte.

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios