Pessoal eu estou com um problema no código do jogo da estrada. Quando eu adiciono o código para que o ATOR não suma da tela, a função (keyIsDown(DOWN_ARROW)) não funciona.
segue o link https://editor.p5js.org/JeffersonBraga/sketches/WqiM5uyMk
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Pessoal eu estou com um problema no código do jogo da estrada. Quando eu adiciono o código para que o ATOR não suma da tela, a função (keyIsDown(DOWN_ARROW)) não funciona.
segue o link https://editor.p5js.org/JeffersonBraga/sketches/WqiM5uyMk
Olá Jefferson, tudo bem? Espero que sim!
Você pode tentar fazer desta maneira:
function podeSeMover(){
return yAtor < 366;
}
function movimentaAtor(){
if (keyIsDown(UP_ARROW)){
yAtor -= 3;
}
if (keyIsDown(DOWN_ARROW)){
if(podeSeMover()){
yAtor += 3;
}
}
}
Assim o ator não ultrapassará os limites da tela, e andará para trás normalmente.
O código na pasta sketch.js ficará assim:
function setup() {
createCanvas(500, 400);
}
function draw() {
background(imagemEstrada);
movimentaAtor();
ator();
carros();
movimentaCarros();
loopingCarros();
verColisao();
placar();
pontos();
}
E na pasta ator.js ficará dessa forma:
//codigo ator
let yAtor = 366;
let xAtor= 70;
let colisao = false;
function ator(){
image(imagemAtor,xAtor ,yAtor , 30, 30);
}
function podeSeMover(){
return yAtor < 366;
}
function movimentaAtor(){
if (keyIsDown(UP_ARROW)){
yAtor -= 3;
}
if (keyIsDown(DOWN_ARROW)){
if(podeSeMover()){
yAtor += 3;
}
}
}
function verColisao(){
for (let i =0; i < imagemCarros.length; i++){
colisao = collideRectCircle(xCarro[i], yCarro[i], aCarros, cCarros, xAtor, yAtor, 5)
if (colisao){
colidiu()
}
}
}
function colidiu(){
yAtor = 366;
if (meusPontos > 0){
meusPontos -= 1;
}
}
Espero ter ajudado!
Caso surjam dúvidas, fico à disposição.
Abraços e bons estudos!