Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Passar o parâmetro evento "pra frente"

Fiz duas funções. Eu queria atirar com uma cor diferente que eu passo como parâmetro. Tentei o seguinte:

var tiro = function(cor, x, y){
        c.fillStyle = cor;
        c.beginPath();
        c.arc(x, y, 25, 0, 2 * Math.PI);
        c.fill();
    }

    var atirar = function(evento, cor){
        var x = evento.pageX - tela.offsetLeft;
        var y = evento.pageY - tela.offsetTop;
        tiro(cor, x, y);
    }

Tentei invocar as funções assim:

tela.onclick = atirar(evento, "blue");
tela.oncontextmenu = atirar(evento, "red");

Mas dá um erro: evento is not defined. Como posso fazer pra funcionar? Obrigado.

1 resposta
solução!

Olá Pedro,

Infelizmente não dá pra fazer isso do jeito que você está tentando, a forma correta seria:

tela.onclick = function(e){ atirar(e, "blue"); };
tela.oncontextmenu = function(e){ atirar(e, "red"); };

isso acontece pois nesse momento (quando você dá um tela.onclick) você precisa passar uma função, e não uma chamada de função que é o caso quando você coloca atirar(evento, "red");.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software