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)
2
respuestas

Desafio final-duda

El codigo es funcional pero no consigo limitar el espacio para que no dibuje sobre la paleta de colores, he intentado poner rangos pero no consigo resultado aun, alguna sugerencia para solucionar esto?.

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

<script>

    var pantalla = document.querySelector('canvas');
    var pincel = pantalla.getContext('2d');
    var color = 0
    var arregloColores = ["blue","red","green"]
    evento = pantalla.onclick

       var dibujo = false;

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

    pincel.fillStyle = 'red';
    pincel.fillRect(0, 0, 50, 50);

    pincel.fillStyle = 'green';
    pincel.fillRect(50, 0, 50,50);

    pincel.fillStyle = 'blue';
    pincel.fillRect(100, 0, 50, 50);    




    function colores(evento){

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


        if (
            (x < 50)&
            (x > 0)&
            (y < 50)&
            (y > 0)
                                   ){
            color = 1;
            pincel.fillStyle = arregloColores[color]
        }


            if (
            (x < 100)&
            (x > 50)&
            (y < 50)&
            (y > 0)
                                   ){
            color = 2;
            pincel.fillStyle = arregloColores[color]
            }

              if (
            (x < 150)&
            (x > 100)&
            (y < 50)&
            (y > 0)
                                   ){
            color = 0;
            pincel.fillStyle = arregloColores[color]
            }







        }



    function Dibujar(movimiento){

        if (dibujo){


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







                pincel.beginPath();
                pincel.arc(x,y,5,0,2*3.14)
                pincel.fill();


        }


    }

    function habilitarDibujo(){

        dibujo = true;

    }


     function deshabilitarDibujo(){

        dibujo = false;

    }



        pantalla.onmousemove = Dibujar;
        pantalla.onmousedown = habilitarDibujo;
        pantalla.onmouseup = deshabilitarDibujo;
        pantalla.onclick = colores;



</script>
2 respuestas
solución!

en la funcion dibujar podes anidar otro if considerando el area de la paleta. Fue lo que mas tiempo me tomo. Ej: if((x>150)||(y>50)){...}

Muchas gracias.