1
respuesta

Propuesta de Diseño de Mouse

Queria compartir mi codigo, me funciono...La verdad es que lo hice con lo aprendido en la ultima aula, solo que como se me ocurrio no hacia las cosas, pero en la parte de definir la logica de los if no me funcionaba asi que tuve que investigar como hacerlo funcionar como ya lo tenia, ojala que les sirva como un ejemplo de atacar un mismo problema

<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 color2 = "blue";

    function dibujarCuadrado(x,y,color){
        pincel.fillStyle = color;
        pincel.fillRect(x,y,50,50);
        return{x: x, y: y};
    }
    var cuadrado1 = dibujarCuadrado(0,0,"red");
    var cuadrado2 = dibujarCuadrado(50,0,"green");
    var cuadrado3 = dibujarCuadrado(100,0,"blue");

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

        if (x >= cuadrado1.x && x <= cuadrado1.x + 50 && y >= cuadrado1.y && y <= cuadrado1.y + 50){
            color2 = "red";
        } else if (x >= cuadrado2.x && x <= cuadrado2.x + 50 && y >= cuadrado2.y && y <= cuadrado2.y + 50){
            color2 = "green";
        } else if (x >= cuadrado3.x && x <= cuadrado3.x + 50 && y >= cuadrado3.y && y <= cuadrado3.y + 50){
            color2 = "blue";
        }
    }

    var puedoDibujar = false;

    function dibujarCirculo(evento) {

        if(puedoDibujar) {
            var x = evento.pageX - pantalla.offsetLeft;
            var y = evento.pageY - pantalla.offsetTop;
            pincel.fillStyle = color2;
            pincel.beginPath();
            pincel.arc(x, y, 5, 0, 2 * 3.14);
            pincel.fill();
        }
    }

    pantalla.onmousemove = dibujarCirculo;

    function habilitarDibujar() {

        puedoDibujar = true;
    }

    function deshabilitarDibujar() {

        puedoDibujar = false;
    }

    pantalla.onmousedown = habilitarDibujar;

    pantalla.onmouseup = deshabilitarDibujar;

    pantalla.onclick = cambioColor;


</script>
1 respuesta

¡Hola Alonso! Gracias por compartir tu código con nosotros. Es genial ver cómo aplicaste lo que aprendiste en el aula para resolver un problema. Tu código muestra cómo dibujar cuadrados y círculos en un canvas, y cómo cambiar el color del círculo según el cuadrado que se haya seleccionado previamente.

Una sugerencia que te puedo dar es que podrías agregar comentarios en tu código para que otras personas puedan entenderlo más fácilmente. También podrías explicar cómo funciona la función "dibujarCirculo" y cómo se relaciona con la función "cambioColor".

¡Espero haber ayudado y buenos estudios!

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