Ola Ana, Tudo bem? vamos la:
A sua função de movimentar o personagem esta correta:
function movimentaAtor(){
if (keyIsDown(UP_ARROW)){
yAtor -= 3;
}
if (keyIsDown(DOWN_ARROW)){
yAtor += 3;
}
}
Ela atribui o valor 3 na variavel yAtor toda vez que o usuário aperta para baixo ou pra cima, porem na sua função onde você mostra o ator tem um erro, você esqueceu de colocar a variável yAtor , então o eixo Y vai estar sempre com um valor fixo :
function mostraAtor(){
//o que vai desenhar, posição x, posição y, altura, comprimento da imagem
image(imagemDoAtor,100,366,30,30);
}
O correto seria colocar a variável yAtor no lugar de 366
desse jeito:
function mostraAtor(){
//o que vai desenhar, posição x, posição y, altura, comprimento da imagem
image(imagemDoAtor,100,yAtor,30,30);
}
Aqui esta seu código completo funcionando:
//arquivos
let imagemDaEstrada;
let imagemDoAtor;
let imahemCarro;
//ator
let yAtor = 366;
//carro
let xCarro = 600;
function preload(){
imagemDaEstrada = loadImage("Imagens/estrada.png");
imagemDoAtor = loadImage("Imagens/ator-1.png");
imagemCarro = loadImage("Imagens/carro-1.png");
}
function setup() {
createCanvas(500, 400);
}
function draw() {
background(imagemDaEstrada);
mostraAtor();
mostraCarro();
movimentaCarro();
movimentaAtor()
}
function mostraAtor(){
//o que vai desenhar, posição x, posição y, altura, comprimento da imagem
image(imagemDoAtor,100,yAtor,30,30);
}
function mostraCarro(){
image(imagemCarro,xCarro,40,50,40);
}
function movimentaCarro(){
//o -= garante o loop
xCarro = xCarro -= 2;
}
function movimentaAtor(){
if (keyIsDown(UP_ARROW)){
yAtor -= 3;
}
if (keyIsDown(DOWN_ARROW)){
yAtor += 3;
}
}
Espero ter ajudado.