Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

05 Diseñando con el mouse

Buenas como están? Yo el desafío lo hice un poco distinto. Cree una función habilitaAreaDeDibujo(x, y) que valida las coordenadas que ya se ingresan en dibujarCirculo(event) y en esta ultima agregue una condición más al if (puedoDibujar && puedeDibujarEnElArea)

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

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

        pincel.fillStyle = 'grey';
        pincel.fillRect(0, 0, 600, 400);
        var puedoDibujar = false;
        var puedeDibujarEnElArea = false;

        function cuadroPaleta(x, y, color) {
            pincel.strokeStyle = "black";
            pincel.fillStyle = color;
            pincel.fillRect(x, y, 50, 50);
            pincel.strokeRect(x, y, 50, 50);


        }

        function paletaColores() {
            var x = 0;
            var y = 0;
            cuadroPaleta(x, y, "red");
            cuadroPaleta(x + 50, y, "green");
            cuadroPaleta(x + 100, y, "blue");

        }

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

            habilitaAreaDeDibujo(x, y);

            if (puedoDibujar && puedeDibujarEnElArea) {

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

        }
        function cambiaColor(event) {
            var x = event.pageX - pantalla.offsetLeft;
            var y = event.pageY - pantalla.offsetTop;
            if (x >= 0 && x < 50 && y >= 0 && y < 50) {

                colorSeleccionado = "red";

            } else if ((x >= 50 && x < 100 && y >= 0 && y < 50)) {
                colorSeleccionado = "green";

            } else if ((x >= 100 && x < 150 && y >= 0 && y < 50)) {
                colorSeleccionado = "blue";

            }

        }




        paletaColores();

        pantalla.onmousemove = dibujarCirculo;

        function habilitarDibujar(event) {

            puedoDibujar = true;
        }
        function habilitaAreaDeDibujo(x, y) {
            if (x <= 155 && y <= 55) {
                puedeDibujarEnElArea = false;

            } else {
                puedeDibujarEnElArea = true;
            }

        }


        function deshabilitarDibujar() {

            puedoDibujar = false;
        }

        pantalla.onclick = cambiaColor;
        pantalla.onmousedown = habilitarDibujar;

        pantalla.onmouseup = deshabilitarDibujar;

    </script>

</body>
1 respuesta

Hola Matias

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