Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

[Dúvida] Imagem da estrada não aparece e fica no "Loading" infinito

Olá, estou tentando inserir a imagem da estrada no jogo mas não carrega, fica apenas aparecendo "Loading" infinito e da o seguinte erro:

p5.js says: It looks like there was a problem loading your image. Try checking if the file path (https://preview.p5js.org/imagens/estrada.png) is correct, hosting the file online, or running a local server.

Se alguém puder dar um help eu agradeço S2.

3 respostas

Oi Nicole, tudo bem?

Pelo que você comentou parece que o p5 está tendo problemas em fazer o carregamento da sua imagem. Para resolver sugiro que você verifique se os seguintes passos foram dados:

  • Baixe os arquivos;
  • Crie uma pasta para colocar os arquivos das imagens:

Captura de tela colorida do p5.js mostrando o menu “Sketch Files” no lado direito com uma aba contendo três itens: “Create Folder” , “Create File” e “Upload File” destacado em rosa. Ao lado há um campo contendo códigos referentes ao jogo.

  • Em seguida, no lado direito da pasta criada, clique na seta para baixo e selecione “Upload File”;
  • Clique dentro do campo e selecione as imagens que você quer adicionar ao jogo:

Gif colorido da tela do p5.js. O vídeo mostra um quadrado cinza com outro quadrado menor em seu interior com o título “Upload File”. Uma seta clica dentro do quadrado branco e  uma pasta é aberta. Em seguida o mouse clica na imagem de um carro verde e a imagem  é carregada para o jogo dentro do quadrado branco. No fundo da imagem, no lado esquerdo, há o campo contendo códigos e ao lado direito a pré-visualização do jogo mostrando a imagem da estrada e de carros passando por ela.

  • Crie um arquivo para adicionar os carregamentos das imagens. O nome pode ser “Imagens.js”. Para criar esse arquivo basta ir na seta para baixo ao lado do menu “Scketch Files” e clicar em “Create File” .
  • No arquivo “Imagens.js”, crie uma variável para a imagem da estrada e faça o carregamento da imagem dentro da função preload() :
let imagemDaEstrada;

function preload(){
  imagemDaEstrada = loadImage("imagens/estrada.png");
}

Atente-se para a grafia do nome do arquivo para que você não coloque nenhum espaço a mais ou insira o nome com alguma letra trocada. Como o arquivo está dentro de uma pasta no p5, é necessário criar o caminho do arquivo como foi feito no código acima, iniciando pelo nome da pasta e em seguida colocando o nome do arquivo, tudo entre aspas e separados por uma barra.

  • Por fim, no arquivo “scketch.js” é necessário acrescentar a variável criada para a imagem da estrada dentro da função draw() no interior dos parênteses da propriedade “background”:
function draw() {
  background(imagemDaEstrada);
} 

Além de tudo isso é importante que você verifique dentro do arquivo “index.html” se o arquivo “Imagens.js” faz parte da tag “body”. Caso ele não esteja ali você pode acrescentar o seguinte comando:

<script src="Imagens.js"></script>

Espero que com esses passos e se atentando para os detalhes mencionados você consiga resolver o problema. Caso ainda persista esse erro, peço que me envie seu código para que eu possa te ajudar melhor.

Para compartilhar seu código do p5.js basta você estar logado na sua conta e dentro do seu projeto. Na opção File no lado superior esquerdo da tela, você irá clicar em Share e em seguida irá escolher o último link que redirecionará diretamente para os comandos criados.

Grande abraço e bons estudos!

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

Olá Rodrigo, fiz passo a passo do recomendado mas ainda sim a estrada não aparece, porem o "Loding" infinito desapareceu. segue abaixo o que eu tenho feito:

https://editor.p5js.org/nicksdry/sketches/Napomoi2A

Obrigado desde já pela ajuda =D

solução!

Oi Nicole, tudo bem?

Dei uma olhada no seu projeto e identifiquei alguns erros que podemos corrigir com os seguintes passos:

  • No arquivo index.html na tag "body" você irá adicionar todos os arquivos criados que terminem com .js:
</head>
  <body>
    <main>
    </main>
    <script src="sketch.js"></script>
    <script src="Imagens.js"></script>
  </body>
</html>
  • No arquivo Imagens.js você criará todas as variáveis que irão servir para carregar as imagens e sons inseridos no jogo:
let imagemDaEstrada;

function preload(){
  imagemDaEstrada = loadImage("imagens/estrada.png");
}

Nesse arquivo, ainda serão inseridas as variáveis para o ator e para os carros, que seguirão o mesmo padrão usado para a estrada.

  • No arquivo sketch.js será deixada apenas:
    • a função setup() , responsável pela criação do canvas e pela trilha sonora do jogo;
    • e a função draw() , responsável por desenhar todos os componentes do jogo e realizar toda a movimentação criada pelas funções ao longo do jogo;
function setup() {
    createCanvas(500, 400);
}

function draw() {
    background(imagemDaEstrada);
}

Aproveito para lembrar que durante o curso o instrutor irá criar arquivos com o final .js para o ator e para os carros e dentro de cada arquivo serão escritos os comandos específicos para cada parte do jogo, portanto atente-se para separar adequadamente os códigos e manter seu projeto organizado.

Espero ter ajudado. Caso tenha outras dúvidas, estarei à disposição.

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