3
respostas

duvidas sobre o projeto 2

meu projeto não esta funcionando e eu não sei porque meu link é https://editor.p5js.org/jor444rr/sketches/IpaL93nBm e preciso de ajuda para termina o projeto da aula

3 respostas

faz quase uma semana que eu estou esperando uma resposta para esta pergunta poderia ser mais prestativo e responder meu link é https://editor.p5js.org/jor444rr/sketches/IpaL93nBm

Olá Jorge, tudo bem?

O problema apontado pelo p5.js é que a função keyIsDown() (e outras funções relacionadas ao p5.js) deve ser usada dentro das funções do p5.js, como setup() e draw(). Vou reorganizar seu código para que ele funcione adequadamente com a estrutura correta do p5.js:

// Variáveis do ator
let xAtor = 85;
let yAtor = 366;
let colisao = false;
let meusPontos = 0;

function setup() {
  createCanvas(400, 400); // Defina o tamanho do canvas de acordo com suas necessidades
}

function draw() {
  background(220); // Define a cor de fundo do canvas

  movimentaAtor();
  verificaColisao();
  mostraAtor();
  incluiPontos();
  marcaPontos();
}

function mostraAtor() {
  // Substitua esta linha pela sua própria função de exibição de imagem
  // image(imagemDoAtor, xAtor, yAtor, 30, 30);
  ellipse(xAtor, yAtor, 30, 30); // Exemplo de um círculo representando o ator
}

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

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

function verificaColisao() {
  // Substitua estas variáveis pelas suas próprias
  let imagemCarro = [];
  let xCarro = [];
  let yCarro = [];
  let comprimentoCarro = [];
  let alturaCarro = [];

  for (let i = 0; i < imagemCarro.length; i++) {
    colisao = collideRectCircle(
      xCarro[i],
      yCarro[i],
      comprimentoCarro[i],
      alturaCarro[i],
      xAtor,
      yAtor,
      30
    );
    if (colisao) {
      colidiu();
      // Substitua estas linhas pelas suas próprias funções de som
      // somDaColisao.play();
      // if (pontosMaiorQueZero()) {
      //   meusPontos -= 1;
      // }
    }
  }
}

function colidiu() {
  yAtor = 366;
}

function incluiPontos() {
  textAlign(CENTER);
  textSize(25);
  fill(color(255, 240, 60));
  text(meusPontos, width / 2, 27);
}

function marcaPontos() {
  if (yAtor < 15) {
    meusPontos += 1;
    // Substitua esta linha pela sua própria função de som
    // somDoPonto.play();
    colidiu();
  }
}

function pontosMaiorQueZero() {
  return meusPontos > 0;
}

function podeSeMover() {
  return yAtor < 366;
}

claro Otávio Prado eu não entendi muitas das dicas que você me deu poderia ser mas claro por favor