1
resposta

[Dúvida] Ator não movimenta para cima!?

let imagemDaEstrada;
let imagemDoAtor;
let imagemDoCarro;

//Carro
let xCarro = 600

//Ator
let yAtor = 365


function preload(){
imagemDaEstrada = loadImage('imagens/estrada.png')
imagemDoAtor = loadImage('imagens/ator-1.png')  
imagemDoCarro = loadImage('imagens/carro-1.png')  

}

function setup() {
  createCanvas(500, 400);
}

function draw() {
  background(imagemDaEstrada);
mostrarAtor()
mostrarCarro()
movimentaCarro()
movimentaAtor()  
}

function mostrarAtor(){
image(imagemDoAtor, 100, yAtor, 30, 30)  
}

function mostrarCarro(){
image(imagemDoCarro, xCarro , 45, 40, 30)  
}

function movimentaCarro(){
xCarro -= 2  
}

function movimentaAtor(){
if (keyIsDown(UP_ARROW)){
yAtor -= 3  
}  
}

function movimentaAtor(){
 if (keyIsDown(DOWN_ARROW)){
yAtor += 3   
 } 
}  

Alguém pode me ajudar?

1 resposta

Oi, Hugo! Tudo bem?

De acordo com o código enviado pude notar que o ator da vaquinha não está se movimentando corretamente, isso ocorre pois a função movimentaAtor() está sendo definida duas vezes ao longo do código, com duas funcionalidades distintas. Dessa forma, ao chamar uma função que é descrita duas vezes com funcionalidades diferentes, uma delas vai sobrepor a outra, ou seja, só uma delas irá atuar no código.

Devido a isso, devemos colocar as duas funcionalidades, tanto a responsável pela movimentação para cima do nosso ator, quanto a movimentação para baixo, dentro de uma mesma e única função movimentaAtor() e deixando-a da seguinte maneira:

function movimentaAtor(){
   if (keyIsDown(UP_ARROW)){
    yAtor -= 3  
   }

   if (keyIsDown(DOWN_ARROW)){
    yAtor += 3   
   } 
} 

Espero ter ajudado na compreensão do problema. Caso tenha ficado alguma dúvida, sinta-se à vontade em comunicar, estou à disposição!

Um forte abraço e bons estudos!

Caso este post tenha te ajudado, por favor, marcar como solucionado ✓