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

[Duda] Hola! No entiendo por qué mi código no cambia el color para dibujar. Saludos!

<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 colorActual = "blue";
    var puedoDibujar = false;

    function dibujarCirculo(evento) {
        if(puedoDibujar) {
            var x = evento.pageX - pantalla.offsetLeft;
            var y = evento.pageY - pantalla.offsetTop;
            if((x > 150 && y > 50) || (x > 150 && y < 50) || (y > 50 && x < 150) ){
                pincel.fillStyle = colorActual;
                pincel.beginPath();
                pincel.arc(x, y, 5, 0, 2 * 3.14);
                pincel.fill();
            }
        }
    }

    function dibujarRectangulo(x, y, base, altura, color) {
        pincel.fillStyle = color;
        pincel.fillRect(x,y, base, altura);
    }

    function dibujarPaletaDeColores() {
        dibujarRectangulo(0,0,50,50,"red");
        dibujarRectangulo(50,0,50,50,"green");
        dibujarRectangulo(100,0,50,50,"blue");
    }

    dibujarPaletaDeColores();

    function cambiarColor(evento){
        var x = evento.pageX - pantalla.offsetLeft;
        var y = evento.pageY - pantalla.offsetRight;
        if(x<50 && y<50){
                colorActual="red";
                console.log(colorActual)
            }
            if(x<100 && x>50 && y<50){
                colorActual="green";
            }
            if(x<150 && x>100 && y<50){
                colorActual="blue";
            }
    }

    function habilitarDibujar() {
        puedoDibujar = true;
    }

    function deshabilitarDibujar() {
        puedoDibujar = false;
    }

    pantalla.onmousedown = habilitarDibujar;
    pantalla.onmouseup = deshabilitarDibujar;
    pantalla.onclick = cambiarColor;
    pantalla.onmousemove = dibujarCirculo;

</script>
1 respuesta

Hola!

En tu función cambiarColor() tienes var y = evento.pageY - pantalla.offsetRight; debiendo ser var y = evento.pageY - pantalla.offsetTop;

Saludos!