Olá, Pessoal!
Tudo de boa?
Estou com um problemão com meu código: não consigo identificar onde estou errando. No console há a indicação de que o evento. keyCode não está definido. Como devo lidar com essa situação? Existe algum outro ponto incorreto no código?
Segue abaixo meu código:
<canvas width="800" height="400"></canvas>
<script>
var tela = document.querySelector("canvas");
var canetao = tela.getContext('2d');
function drawCircle(x,y){
canetao.fillStyle = 'red';
canetao.beginPath();
canetao.arc(x,y,15, 0,2*Math.PI);
canetao.fill();
}
/* Desenha o campo para o jogo
function drawCampo(a,b,x,y, cor){
canetao.fillStyle = cor;
canetao.fillRect(a,b,x,y);
}
canetao.fillStyle = "lightgreen";
canetao.fillRect(0,0,800,400);
drawCampo(20,20,760,360," white");
drawCampo(30,30,740,340," lightgreen")
drawCircle(400,200,25,"white");
drawCampo(20,125,80,150, "white");
drawCampo(780,125,-80,150, "white");
*/
function cleanTela(){
canetao.clearRect(0,0,800,400);
}
var x = 20;
var y = 20;
// Keys Codes
var left = 37;
var up = 38;
var right = 39;
var down = 40;
//taxa para movimento
var rate = 10;
function updateCanvas() {
cleanTela();
drawCircle(x ,y);
}
// identifica o Keycode e altera a taxa para movimento
function recKeyboard(){
if (evento.keyCode ==left){
x = x -rate;
}else if( evento.keyCode == right){
x = x + rate;
}else if(evento.keyCode == down){
y = y + rate;
}else if(evento.keyCode ==up){
y = y - rate;
}
}
setInterval(updateCanvas,20);
document.onkeydown = recKeyboard();
</script>
Para ser sincera não sei se o conceito do exercício ficou claro para mim. Entendo sobre o que se trata e o objetivo da lógica, mas como o valor da tecla é capturado me gerou dúvidas. Conseguem me explicar o processo de uma outra forma?
Agradeço imensamente desde já!!!
Abraço!!!