1
resposta

Lista de imagemCarros dentro da função preload e não numa let

Olá, o professor estava colocando todas as listas dentro de let, até que quando foi criar uma lista para as imagens (na Atividade 2 da Aula 3), criou ela dentro da função preload e não disse o porquê disso. Fiquei empacado nisso, tentando entender. Não queria simplesmente copiar o que ele faz, mas de fato entender a razão dessa escolha. Tentei criar de uma forma diferente e deu errado, assim:

let imagemDaEstrada;
let imagemDoAtor;
let imagemCarro;
let imagemCarro2;
let imagemCarro3;
let imagemCarros = [imagemCarro, imagemCarro2, imagemCarro3];

function preload(){
 imagemDaEstrada = loadImage ("Imagens/estrada.png");
 imagemDoAtor = loadImage ("Imagens/ator-1.png");
 imagemCarro = loadImage ("Imagens/carro-1.png");
 imagemCarro2 = loadImage ("Imagens/carro-2.png");
 imagemCarro3 = loadImage ("Imagens/carro-3.png");
}

Alguém pode dar uma luz nisso? Grato!

1 resposta

Olá Eduardo, tudo bem com você? Espero que sim!

Agradeço a sua paciência em aguardar uma resposta para seu tópico.

Certo, vamos trabalhar em partes:

  1. O que o professor queria ao criar a lista imagemCarros dentro da função preload() foi que após as imagens forem carregadas para as respectivas variáveis delas, elas fossem adicionadas dentro dessa lista, assim em vez de que ficar chamando cada uma separadamente dentro de outras partes do projeto, é necessário apenas chamar a lista imagemCarros e informar qual índice que você quer utilizar para obter a imagem do carro.

  2. O seu código deu errado porque quando você adiciona as variáveis a lista elas ainda estão vazias, e como a adição da imagem carregada acontece dentro da função preload() o novo valor dessas variáveis(que no caso vão ser as imagens) apenas vão contar dentro da função, logo quando a lista for chamada posteriormente em outro local do seu projeto ela vai estar vazia.

Espero que eu tenha lhe ajudado de alguma forma, caso continue com alguma dúvida fico a sua disposição. Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado! ✓.