Olá.
Não está faltando { e } para o alert("Acertou!"); do seu if? Ele é obrigatório mesmo que tenha só uma cláusula dentro do if.
Não entendi Jorge Torres Coelho
Manuel, observe as chaves entre o comando alert:
if((x > xAleatorio - raio) && (x < xAleatorio + raio) && (y > yAleatorio - raio) && (y < yAleatorio + raio))
{
alert("Acertou!");
}
}
O comando if tem a seguinte estrutura:
if( <condicao> ) {
<comando1>;
<comando2>;
<...>
}
Portanto, faltou o abre e fecha chaves do IF. No seu caso, só existe um comando (o <comando1>).
function dispara(evento) {
var x = evento.pageX - tela.offsetLeft;
var y = evento.pageY - tela.offsetTop;
alert(xAleatorio);
alert(yAleatorio);} if ((x > xAleatorio - raio) && (x < xAleatorio + raio) && (y > yAleatorio - raio) && (y < yAleatorio + raio)) {
alert("Acertou!");
}
tela.onclick = dispara;
Agora esta a m dar erro no if
Como não estou acompanhando esta aula, você está usando algum debugador on-line para facilitar a explicação (ou ao menos o entendimento)?
Qual a mensagem de erro?
Olhando só a função dispara(), a menos que as variáveis xAleatorio, yAleatorio, raio sejam globais, vai dar erro. Exiba os valores de cada variável com os alert. Se der erro é por isso que deu pau no if.
Também você fez uma chamada à função dispara:
tela.onclick = dispara;
Mas não informou o parâmetro dela.
Você definiu a função dispara como
dispara(evento)
Qual seria o valor de evento no caso?