Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
6
respuestas

Cambiando de Color (segun mi logica)

<meta charset = UTF-8>
<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 colores = ['yellow', 'red', 'blue']; 
    var num = 0;
    function exhibirAlerta(evento){
        var x = evento.pageX - pantalla.offsetLeft;
        var y = evento.pageY - pantalla.offsetTop;

        pincel.fillStyle = colores[num];
        pincel.beginPath();
        pincel.arc(x,y,10,0,2*3.14);
        pincel.fill();
    }

    pantalla.onclick = exhibirAlerta;

    function cambiarColor(evento){
        if(num==2){
            num = 0;
            exhibirAlerta;
        }
        else{
            num= num+1;
            exhibirAlerta;
        }
    }
    pantalla.oncontextmenu = cambiarColor;

</script> 
6 respuestas

Perfecto Paul Funciona de 10 Buena lógica aplicada, algo similar también hice.

si quieres agregar mas colores, yo le cambiaria

if(num==2)

por

if(num==(colores.length - 1))

Tu lógica se parece un poquito a mi lógica jajaja... Con algunas variaciones:

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

</canvas>

<script>

    var pantalla = document.querySelector("canvas");
    var pencil = pantalla.getContext("2d");

    //Declaro dos variables para resolverlo
    var colores = ["blue", "red", "green"];
    var color = colores[0];

    pencil.fillStyle = "grey";
    pencil.fillRect(0,0,600,400);

    function exibiralerta(evento)
    {
        var x = evento.pageX - pantalla.offsetLeft;
        var y = evento.pageY - pantalla.offsetTop;
        console.log(evento);
        alert(x + ", " + y);
    }

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

        pencil.fillStyle = color; //pongo aquí mi segunda variable añadida
        pencil.beginPath();
        pencil.arc(x,y,10,0,2*3.14);
        pencil.fill();
    }

    pantalla.onclick = dibujarCriculos;

    //Compruebo en qué parte del array se encuentra para cambiarlo

    function alterarColor()
    {
        if(color == colores[0])
        {
            color = colores[1];
        }
        else if(color == colores[1])
        {
            color = colores[2];
        }
        else
        {
            color = colores[0];
        }
        return false;
    }

    pantalla.oncontextmenu = alterarColor;

</script>

no es mala forma, pero se me hace un poco complicada, yo lo hice de una forma mas simple. con solo 3 lineas de codigo. pero no hay una respuesta correcta, es funcional. felicitaciones

Hola , lo probé y al clickear el boton derecho no cambia de color. Y el codigo del instructor tampoco funciona

<meta charset="UTF-8">
<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 colores = ["blue","red","green"]
    var coloresEsp = ["azul", "rojo", "verde"];
    var seleccionarColor = 0;

    function dibujarCirculo(evento){
        var x = evento.pageX - pantalla.offsetLeft;
        var y = evento.pageY - pantalla.offsetTop;    
        pincel.fillStyle = colores[seleccionarColor];
        pincel.beginPath();
        pincel.arc(x,y,10,0,2*3.14);
        pincel.fill();
        console.log(x + "," + y);        
    }

    pantalla.onclick = dibujarCirculo;

    function alterarColor() {

        if (seleccionarColor < (colores.length - 1)) {
            seleccionarColor++;
        } else {
            seleccionarColor = 0;
        }
        alert("Seleccionó el color " + coloresEsp[seleccionarColor]);
        return false;
    }

    pantalla.oncontextmenu = alterarColor;

</script>