Tenho um canvas dividido em duas partes, e a função abaixo:
function clicouNoCanvas(evento) {
var x = evento.pageX - tela.offsetLeft;
var y = evento.pageY - tela.offsetTop;
if( x < 300) {
if( y < 400) {
var cor = "yellow";
corEscolhida.push(cor);
c.fillStyle =corEscolhida ;
c.beginPath();
c.arc(x, y, 10, 0, 2*3.14);
c.fill();
} }
console.log("posicao do clique : " + x + " , " + y);
Como faço para na outra metade da tela (x entre 300 e 600p.ex) o clique do mouse printar bolas vermelhas?
Obrigado pelo contato, mas você pode indicar em que lugar da função eu coloco este 2o condicional?
Por que se eu colocar os dois condicionais antes de escolher a cor, ele entende somente a primeira cor, e não divide a tela do canvas em dois.
Segue abaixo o código:
A função que voce apresentou esta associado a algum evento do tipo clique? porque em condições normais esse trecho de código deveria funcionar, pois ele significa: se x < 300 for uma condição verdadeira printar amarelo, se for falso a função já nao deve printar amarelo. caso seja >= 300 && <= 600 deve printar vermelho, ate que essa condição seja falsa.
var tela = document.getElementById("tela");
var c = tela.getContext("2d");
c.fillStyle="gray";
c.fillRect(0, 0, 600, 400);
c.strokeStyle="black";
c.strokeRect(0, 0, 600, 400);
function clicouNoCanvas(evento) {
var x = evento.pageX - tela.offsetLeft;
var y = evento.pageY - tela.offsetTop;
if ( x < 300) {
corEscolhida.push(“yellow”);
}
else {
corEscolhida.push(“red”);
}
c.fillStyle =corEscolhida ;
c.beginPath();
c.arc(x, y, 10, 0, 2*3.14);
c.fill();
console.log("posicao do clique : " + x + " , " + y);
Certo, já tentou clicar na tela mais de 300 vezes? Porque em condições normais o seu código já deveria funciona com o trecho de código que sugerir, fiz um teste usando php para algo semelhante e rodou correctamente…